"12345"实际上是"12345"\0没错
char a[5]实际上只分配了5个字节也没错
char a[5]="12345";会先分配5个字节地址给a,然后把"12345"\0这6个字节的内容复制到a开始的地址。如果复制这一步恰好没出错,并且后面这个\0也没有被其他操作覆盖掉,那么printf就没问题。
你可以把printf放在最后,看看结果会是啥。
【 在 shouge111 的大作中提到: 】
: 变量a长度是5,那么根据教材,它只能存储1234,最后一个存储单元应该存储字符串结束标志\0。
: 但是实际运行,a存储了12345.这是怎么回事呢?printf打印也是打印了12345
: #include<stdio.h>
: ...................
--
FROM 114.253.35.*