level 2
岫不凉
楼主
各位佬们,我大一最近刚学完C+的数组,遇到一个问题。如图1,字符数组不指定数组大小,但后面初始化时没加\0作结束标志,按书上所说。输出时字符串后面应该会跟有其它字符直到遇到\0。但是,如图2,当我将数组的初始化放在main外面时,却可以正常输出"china",这是为什么呢?
此外我在图2程序下试了一下sizeof,结果是5,证明系统没有自动加\0?
另外,如图3,我上面用的是VS,但我的一个同学使用Dev编时,放在主函数里也能正常输出"china",这是为什么呢?不会是因为编译器不同,或者仅仅因为运气好正好碰上10吧?
希望大佬们有时间能解答一下,万分感谢!





2024年11月09日 03点11分
1
此外我在图2程序下试了一下sizeof,结果是5,证明系统没有自动加\0?
另外,如图3,我上面用的是VS,但我的一个同学使用Dev编时,放在主函数里也能正常输出"china",这是为什么呢?不会是因为编译器不同,或者仅仅因为运气好正好碰上10吧?
希望大佬们有时间能解答一下,万分感谢!




