黑马程序员技术交流社区

标题: 跪求大神指点这个代码怎么运行?出结果,谢谢 [打印本页]

作者: Sunshine丶星空    时间: 2016-2-25 22:18
标题: 跪求大神指点这个代码怎么运行?出结果,谢谢
定义char ch[2] = {‘a’,’\0’};  char ch2[3] = {'c','d','e'};
printf("%s",ch2)输出的结果是多少?

作者: 米阳    时间: 2016-3-4 01:37
本帖最后由 米阳 于 2016-3-4 01:42 编辑

我验证了下,ch2打印输出的是ceda , 字符串若以大括号方式初始化需要以\0结尾 , 遇到\0才表示该字符串初始化完毕把, 所以直到ch这个字符串的\0才结束 , 你可以运行下看看
作者: 冷傲阳    时间: 2016-3-9 15:02
答案是cdea,根据楼上所说的,用%s打印字符串,知道遇到'\0'才会结束,因为先定义的是 数组ch所以ch在内存中的地址要大,再定义的是ch2,你可以查看一下ch和ch2的两个内存地址,是连续的,所以输出cde后再接着输出a碰到'/0'停止打印




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2