很令我困惑的指针数组的问题
#include <stdio.h>
void main()
{
char *a[3]={"Hello","Welcome","Goodbye"};
for(int i=0;i<3;i++)
{
a++;
printf("%s\n",*a);
}
}
上段程序编译错误,问题是a是一个指针数组,在对a进行自加操作的时候报错,是因为不能对数组名进行自加操作。而下一段代码却能够通过编译并且程序能运行。
#include <stdio.h>
void main(int argv,char *argc[])
{
while(argv>0)
{
argv--;
printf("%s\n",*argc);
argc++;
}
}
我有疑问,argc也是一个指针数组啊,但是这里为什么能对argc数组名进行自加操作呢?盼求高手解答,谢谢!