c/c++ 字符数组 字符串 数组 问题

如题:定义一个数组intstr[5]={'a','b','c','d','e'};如果定义的是全局变量%s输出正常,如果是局部变量输出就会输出abcd烫烫烫这是为何?我知... 如题:定义一个数组int str[5]={'a','b','c','d','e'};

如果定义的是全局变量%s输出正常,如果是局部变量输出就会输出 abcd烫烫烫
这是为何?我知道加上\0就没事,但是想知道这种错误的输出跟什么有关,是数据的存储吗?
展开
 我来答
濮方雅BX
推荐于2016-11-19 · TA获得超过4042个赞
知道大有可为答主
回答量:2482
采纳率:60%
帮助的人:2469万
展开全部
理论上,全局变量和局部变量一样的输出也会有事的。
只不过全局变量在系统装载的时候,分配在一般在内存的堆里,通常在其分配的内存挨着后面有些位置是空的(可能初始化为0),所以输出的时候就“看起来”正常,实际上这并不能保证下次、在别的机器上一直都输出正常。
正规的做法还是要加 \0
追问
恩 你说的很对  谢谢
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式