Cho các khai báo sau: 1: byte [] array1, array2[] 2: byte array3 [][] 3: byte[][] array4; Nếu các mảng trên đều được khởi tạo thì lệnh nào sau sẽ gặp lỗi? Chọn một câu trả lời
Trả lời:
Đáp án đúng: C
Phân tích các khai báo:
- `byte[] array1, array2[]`: Khai báo `array1` là một mảng byte một chiều, và `array2` là một mảng các mảng byte (mảng hai chiều).
- `byte array3 [][]`: Khai báo `array3` là một mảng hai chiều các byte.
- `byte[][] array4`: Khai báo `array4` là một mảng hai chiều các byte.
Xét các phương án:
- A. `array2 = array1;`: Gán một mảng byte một chiều (`array1`) cho một mảng các mảng byte (`array2`). Điều này sẽ gây ra lỗi vì kiểu dữ liệu không tương thích.
- B. `array2[0] = array3[0]`: Gán một mảng byte (dòng đầu tiên của `array3`) cho một phần tử của `array2` (là một mảng byte). Điều này hợp lệ nếu `array2` đã được khởi tạo đúng cách.
- C. `array2 = array4;`: Gán một mảng hai chiều (`array4`) cho một mảng hai chiều (`array2`). Điều này hợp lệ vì cả hai đều là mảng hai chiều byte.
- D. `array1=array2;`: Gán một mảng các mảng byte (`array2`) cho một mảng byte một chiều (`array1`). Điều này sẽ gây ra lỗi vì kiểu dữ liệu không tương thích.
Vì vậy, phương án A và D sẽ gây ra lỗi do không tương thích kiểu dữ liệu. Tuy nhiên, câu hỏi yêu cầu chọn một câu trả lời, và phương án A là rõ ràng nhất gây ra lỗi vì `array2` được khai báo là mảng của mảng bytes (byte[][]) và `array1` chỉ là mảng bytes (byte[]). Do đó, gán trực tiếp mảng bytes cho mảng của mảng bytes là không hợp lệ.
Câu hỏi liên quan

FORM.08: Bộ 130+ Biểu Mẫu Thống Kê Trong Doanh Nghiệp

FORM.07: Bộ 125+ Biểu Mẫu Báo Cáo Trong Doanh Nghiệp

FORM.06: Bộ 320+ Biểu Mẫu Hành Chính Thông Dụng

FORM.05: Bộ 330+ Biểu Mẫu Thuế - Kê Khai Thuế Mới Nhất

FORM.04: Bộ 240+ Biểu Mẫu Chứng Từ Kế Toán Thông Dụng
