Hỏi về tham số mảng 2 chiều c++

Dạ em mới học lập trình, em không hiểu chỗ cột có số 4 mà chỗ dòng lại không cần ghi ạ
cc1

Đó là quy tắc của khai báo tham số mảng cho hàm. Đối với mảng đa chiều (nhiều hơn 1), chỉ duy nhất chiều đầu tiên có thể không cần khai báo số lượng, các chiều còn lại bắt buộc phải có.

int a[][100] // Được
int a[][100][100] // Được
int a[100][100][100][100] // Được

int a[][][100] // Không được
int a[100][][][100] // Không được

Vì sao lại có quy tắc như vậy?

Không phải tự nhiên mà khai báo mảng có quy tắc này. Đó là một điều bắt buộc phải có để mảng khai báo được rõ ràng về kích thước. Bạn hiểu về cách mảng đa chiều được sắp xếp thế nào trong bộ nhớ thì sẽ hiểu rõ hơn.

Nói cho đơn giản thì các phần tử của mảng phải có kích thước xác định cho chiều thứ nhất.
Và ở mảng đa chiều các chiều từ thứ hai trở đi và kiểu dữ liệu là cơ sở để xác định kích thước cho chiều thứ nhất.

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