在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
修改数组的内容。