JavaScript is required

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

A.
array2 = array1;
B.
array2[0] = array3[0]
C.
array2 = array4;
D.
array1=array2;
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