#include<stdio.h>
main()
{
char* b[2]={"fewfwef","fwfwfwq"};
char c[2][10]={"fwfwfwsf","dwgerge"};
char **w;
w=b;
printf("%s\n",*(w+1));
}
那我要 通过w输出c[2][10]中的 c[2][4]"dwgerge"该怎么写呢
追答1)c[2][4]是非法的,因为char c[2][10]的下标是从0~1的,我理解为c[1][0]的字符串]"dwgerge"
2)如果w=c,也就是用二级指针去指向c,那么printf("%s\n",(((char*)w)+10));,首先,将w强扭为char*类型,那么他的加1操作就变成一个字节的移位操作。结果输出为字符串dwgerge
3)用一个一维指针指向c,例如 char *w1=c;实际上在物理空间上c是连续的,直接
printf ("%s",w1+10);就出来了
4)用行指针的形式,char (*w2)[10];记得要加括号,然后printf("%s\n",w2[1]);或者
printf("%s\n",w2+1);就出来了
那我要输出b[2]中的"fwfwfwq"该怎么写呢
本回答被网友采纳