int main()
{char *name[]={"f","a","b","c"};
char **p;
int i;
p=name;
printf("name[0]=%d\n",name[0]);
printf("name=%d\n",name);
printf("p=%d\n",p);
printf("*p=%d\n",*p);
return 0;
}
这个程序name是指针数组的首元素地址,但是name[0]的值和他不一样;为什么
?
运行结果为
name[0]=4206628
name=6356732
p=6356732
*p=4206628
*name[]是以char 为基类型的指针数组,**p是以char 为基类型的指向指针的指针。虽然赋值上p=name代表了p=name的首地址,但实际上*p才是name的地址,打印的时候按照以下格式打印才能输出正确的结果:
#include <stdio.h>望采纳,谢谢!
不懂,难道name和name【0】不是地址么
本回答被网友采纳