【发布时间】:2021-12-03 00:40:37
【问题描述】:
#include<stdio.h>
int main() {
int a[10] = {1, 2, 3, 4};
const int *pa = a;
*(pa + 2) = 4; // error
char b[4] = "abc";
const char *pb = b;
*(pb + 2) = 'c'; // error
int c = 10;
const int *pc = &c;
*(pc + 2) = 4; // error
}
据我了解,const int/char * 仅限制我们不能修改它指向的值。不过貌似修改*(pa + 2)也会报错。为什么会这样?
【问题讨论】:
-
pa + 2仍然是 const int*。
标签: arrays c pointers constants