最后的结束标志是需要你自己设的,不是系统自动帮你设。
a是一个内存地址而已,后面字符串有多长,其实是不确定的,如果你不手动设置结束符,可能给你打印出几百个字符
你这里刚好打印出12345,是因为5后面刚好是结束符\0,因为内存使用率比较低,内存里面大部分字节都是\0,所以一般也不会出现打印出一大串的情况
还可以引申出另一个问题:你这个a数组最大下标应该是4,但是实际上你写程序打印a[5],大概率程序也不会崩溃,因为这个字节刚好没被申请使用,这么访问并不会报错
【 在 shouge111 的大作中提到: 】
: 变量a长度是5,那么根据教材,它只能存储1234,最后一个存储单元应该存储字符串结束标志\0。
: 但是实际运行,a存储了12345.这是怎么回事呢?printf打印也是打印了12345
: #include<stdio.h>
: ...................
--
FROM 113.108.41.*