c语言程序设计。为什么char **p;p=a;printf("%s %s\n",p[0],p[1]);不能运行

char a[][10]={"abcde","12345"};
char **p;
p=a;
printf("%s %s\n",p[0],p[1]);
这样不能运行
char a[][10]={"abcde","12345"};
char (*p)[10];
p=a;
printf("%s %s\n",p[0],p[1]);
这样就可以运行

类型不匹配呀!char a[][10]={...};这样定义的a是char型维数组名,当指针用时是char (*)[10]型;而char **p;这样声明的p是char **型指针;显然p=a;中等号两边的类型不配。把char **p;改成char (*p)[10];就可以了。
温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答