为什么我不能增加数组?

Piy*_*lka 1 c arrays pointers

char a[] = "hello";
Run Code Online (Sandbox Code Playgroud)

我的理解是,a行为就像一个指向字符串的常量指针.我知道写作a++不会奏效,但为什么呢?

das*_*ght 6

不,增加一个数组是不行的.虽然数组可以自由转换为指针,但它们不是指针.因此,写入a++将触发错误.

但是,写作

char *p = a;
p++;
Run Code Online (Sandbox Code Playgroud)

很好,因为p是指针,其值等于a初始元素的位置.