str3长度是10,为什么输入那么多a,还能全都输出,不应该是9个a吗?
str3长度是10,为什么输入那么多a,还能全都输出,不应该是9个a吗?
str3长度是10,为什么输入那么多a,还能全都输出,不应该是9个a吗?
2017-04-29
其实吧,给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后结束输出
举报