Tôi mới bắt đầu học lập trình bằng C và để nâng cao hiểu biết về con trỏ và mảng, tôi đã cố gắng tham khảo các phần tử của một mảng mà không tạo ra bất kỳ con trỏ nào:
for(k1 = 0; k1 < ROW; k1++){
for(k2 = 0; k2 < COLUMN; k2++){
array[k1][k2] = k1*COLUMN + k2 + 1;
printf("[%d][%d] = %d\n", k1, k2, *(array[k1] + k2));
}
}
Toàn bộ mã biên dịch và chạy hoàn hảo.
Tôi tưởng tượng việc phải tạo một con trỏ cho mỗi mảng trong một mã nguồn lớn dường như rất kém hiệu quả.
Vì vậy, thay vì có địa chỉ của một mảng được lưu trữ và truy xuất bằng cách sử dụng một con trỏ, có phải là một thực hành lập trình xấu để sử dụng trực tiếp địa chỉ của mảng, như được hiển thị ở trên không?
printf "[%d][%d] = %d\n", k1, k2, array[k1] [k2]));
sẽ tránh các con trỏ arithmic và dễ hiểu hơn.