【发布时间】:2011-06-03 10:40:49
【问题描述】:
这可能是一件本质上微不足道的事情,但到目前为止,它有点让我无法理解..
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));
我在编译时遇到的错误是:
需要作为增量操作数的左值
我做错了什么,为什么以及'a3'的解决方案是什么?
【问题讨论】:
-
a3 变量被声明为一个字符数组,我想你想将它声明为一个指针数组,所以它应该读 char *a3[2] 而不是 char a3[2]
-
那是复制代码的错误,你是对的,是指针数组,谢谢指出