用字符串给字符数组赋初值时,字符串在C语言里规定以转义字符'\n'作为结束标志,且'\0'占用一个位置,即一个储存单元,也就是定义该字符数值的长度应该比该字符串的字符个数多1。比如说char c[]="ok",我硬要在方括号中填入一个数,究竟是该填2还是3?但是我填2,程序如下,依然可以正确输出ok一词,并未报错,这又是为何?char c[2]="ok"; int i; for(i=0;i<2;i++) printf("%c",c[i]);