理由?
......可能上面说的你理解错误那么我再说一次 系统给他分配了'\0' 可是由于 char str[3]="abc";所以没有分配上.这样可以吗?
我最关心的是这是c的一个规则还是编译器的自由选择
这个问题C标准中并没有明确规定应该怎样处理,留给了编译器了。
main(){ char str[3]="abc"; str[3]=0; printf("%s",str);}DEV-CPP和GCC没用过,用上面的试试,结果会不会一样
为什么这样就不会出现乱码?打印结果为:abc
这段代码 = 》char str[3]="abc"; str[3]=0;这样并没有什么意义,数组下标已经超出了范围,所以打印出那样的结果应该是运气好而已。