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语言初学者,麻烦分析细致一些,谢谢!
展开
 我来答
匿名用户
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"
追问
p[i]应该是二维数组每一行的首地址,那输出为什么不是每行首地址的一个字符呢?
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式