在C語言中,使用const
修飾數組指針時,表示指針指向的地址是常量,即不能通過該指針修改其指向的內容。但是,需要注意的是,const
修飾數組指針并不會影響數組本身的可變性。下面是一個示例:
#include <stdio.h>
int main() {
int arr[] = {1, 2, 3, 4, 5};
const int (*ptr)[5] = arr; // 使用const修飾數組指針
printf("原始數組:\n");
for (int i = 0; i < 5; i++) {
printf("%d ", arr[i]);
}
printf("\n");
// 下面的代碼將無法通過編譯,因為不能通過const數組指針修改數組內容
// (*ptr)[0] = 10; // 錯誤:不能在const指針上解引用并修改其指向的內容
printf("通過指針訪問數組元素:\n");
for (int i = 0; i < 5; i++) {
printf("%d ", *(*ptr + i));
}
printf("\n");
return 0;
}
在這個示例中,我們定義了一個整數數組arr
和一個指向數組的指針ptr
,并使用const
修飾了ptr
。這樣,我們可以通過ptr
訪問數組的內容,但不能通過ptr
修改數組的內容。