为了账号安全,请及时绑定邮箱和手机立即绑定

str3长度是10,为什么输入那么多a,还能全都输出,不应该是9个a吗?

str3长度是10,为什么输入那么多a,还能全都输出,不应该是9个a吗?http://img1.sycdn.imooc.com//590458a4000142a903960143.jpg

正在回答

1 回答

其实吧,给char数组赋值时,是一个char一个char赋的,

虽然规定的是宽度是10,但只是规定了str3最后一个char即str3[9]为'\0',

当我们手工赋值时,赋了一大串的a,如:str3[0]='a',str3[1]='a'...str3[9]='a',str3[10]='a'...,在这里就把str3[9]给改成了'a'

输出时,其实是指针的移动,在没遇到'\0'前是一直不会结束的,在内存中大多数空间都为'\0',所以可以结束输出,即题主所给出的图片所示,

当然,有时候遇到了不是'\0'的,会把它的ascii码输出,如:在这一串a最后下一个字节中存的是'b',而再下一个是'\0'的话,就会输出一大串a加上一个b后结束输出

3 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

str3长度是10,为什么输入那么多a,还能全都输出,不应该是9个a吗?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信