main() { char p[][4]={"ABC","DEF","GHI"}; int i; for(i=0;i<3;i++) puts(p[i]); }
这道选择题的答案是ABCDEFGHI个人认为,p[i]应该是二维数组每一行的首地址,那输出的应该是每行首地址的一个字符,那就应该是ADG不知我的这个想法哪里错了。另外再拓...
这道选择题的答案是
ABC
DEF
GHI
个人认为,p[i]应该是二维数组每一行的首地址,
那输出的应该是每行首地址的一个字符,那就应该是 ADG
不知我的这个想法哪里错了。
另外再拓展一下,如果把上面的程序替换一下:
定义的是一维数组 char p[3]={"ABC","DEF","GHi"};
定义的是指针 char *p[]={"ABC","DEF","GHi"};
输出的结果是不是一样的?
C语言初学者,麻烦分析细致一些,谢谢! 展开
ABC
DEF
GHI
个人认为,p[i]应该是二维数组每一行的首地址,
那输出的应该是每行首地址的一个字符,那就应该是 ADG
不知我的这个想法哪里错了。
另外再拓展一下,如果把上面的程序替换一下:
定义的是一维数组 char p[3]={"ABC","DEF","GHi"};
定义的是指针 char *p[]={"ABC","DEF","GHi"};
输出的结果是不是一样的?
C语言初学者,麻烦分析细致一些,谢谢! 展开
2017-09-19
展开全部
char p[3]={"ABC","DEF","GHi"}; 这种定义是错误的
char p[][4]={"ABC","DEF","GHI"}; 这种定义相当于
char* p[3]={"ABC","DEF","GHI"};
那么: p[1]="ABC\0" P[2]="DEF\0", P[3]="GHI\0"
char p[][4]={"ABC","DEF","GHI"}; 这种定义相当于
char* p[3]={"ABC","DEF","GHI"};
那么: p[1]="ABC\0" P[2]="DEF\0", P[3]="GHI\0"
追问
p[i]应该是二维数组每一行的首地址,那输出为什么不是每行首地址的一个字符呢?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询