在C中递增指针数组

XXL*_*XXL 6 c arrays pointers

这可能是一个非常微不足道的事情,但到目前为止它有点让我失望.

char * a3[2];
a3[0] = "abc";
a3[1] = "def";
char ** p;
p = a3;

这工作:

printf("%p - \"%s\"\n", p, *(++p));

这不是:

printf("%p - \"%s\"\n", a3, *(++a3));

我在编译时遇到的错误是:

lvalue需要作为递增操作数

我做错了什么,为什么以及'a3'的解决方案是什么?

Geo*_*rey 4

a3 是一个常量指针,不能递增它。然而,“p”是指向 a3 开头的通用指针,可以递增。