关于指针的困惑
有一段代码是这样:#include <stdio.h>
int main()
{
char *name[]={"Follow me","Basic","Great Wall","FORTRAN","computer design"};
char *p;
p=*(name+1);
printf("%s\n",p);
return 0;
}
运行正确,但按我的看法,name是指name指定数组首元素的地址,应该是行指针,既然如此,我把其中一句改为
p=name+1为什么不行,等式两边都是地址,应该没问题,但我试着运行,系统出现了警告,[Warning] assignment from incompatible pointer type,运行错误,为什么??我反而觉得源代码的*()是多余的,因为一旦加上*只是把行地址name+1转换为列地址,的确可以,但我的又错在哪?求教该怎么理解