针对您的想法,让我们做个简单的程序测试:main(){ char str[3]="abc"; printf("%s",str);}如果您运行这个程序得到的结果是abc的话,那您就是对的,如果不是,那论坛的资料就是对的,结果如何,您自己运行下便知.
main(){ char str[3]="abc"; str[3]=0; printf("%s",str);}DEV-CPP和GCC没用过,用上面的试试,结果会不会一样
哎,那倒是.上面那个是我随便写的,论坛上没有。现在的编译器容错能力太强,我的理解是,那个是错的!打印的时候应该是乱码.系统并没有分配一个'\0'给它,但是在打印的时候却连相邻的内存单元也打出来了。所以是乱码