在C语言中,使用const
修饰数组指针时,表示指针指向的地址是常量,即不能通过该指针修改其指向的内容。但是,需要注意的是,const
修饰数组指针并不会影响数组本身的可变性。下面是一个示例:
#includeint 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
修改数组的内容。