Như chúng ta đã biết, Java, C# khai báo mảng 2 chiều m x n như sau:
int[][] arr = new int[m][];
for (int i = 0; i < m; i += 1)
arr[i] = new int[n];
Cách khai báo trên cho thấy: arr là mảng 1 chiều, mỗi phần tử của arr có kiểu int[]
Cấu trúc khai báo mảng của một kiểu dữ liệu là
T[] t = new T[length];
Vậy tại sao khai báo mảng nhiều cấp thì ngôn ngữ lại không tuân thủ quy tắc này, lẽ ra phải là
int[][] arr = new int[][m];
Có vẻ như việc này có liên quan đến cách khai báo mảng tĩnh của C++, tuy nhiên cách khai báo mảng động sử dụng new và con trỏ của C++ vẫn tuân thủ quy tắc T[].
Mọi người nghĩ sao, có ai cảm thấy “ngứa mắt” giống như mình không :))

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?