A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

定义char ch[2] = {‘a’,’\0’};  char ch2[3] = {'c','d','e'};
printf("%s",ch2)输出的结果是多少?

2 个回复

倒序浏览
本帖最后由 米阳 于 2016-3-4 01:42 编辑

我验证了下,ch2打印输出的是ceda , 字符串若以大括号方式初始化需要以\0结尾 , 遇到\0才表示该字符串初始化完毕把, 所以直到ch这个字符串的\0才结束 , 你可以运行下看看
回复 使用道具 举报
答案是cdea,根据楼上所说的,用%s打印字符串,知道遇到'\0'才会结束,因为先定义的是 数组ch所以ch在内存中的地址要大,再定义的是ch2,你可以查看一下ch和ch2的两个内存地址,是连续的,所以输出cde后再接着输出a碰到'/0'停止打印
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马