字符数组的初始化

来源:百度知道 编辑:UC知道 时间:2024/06/02 05:13:12
char string[10]="abc";

数组初始化时没被赋初值的数组元素会被默认赋为0,那么字符数组呢?比如上面的,其他数组元素会被覆默认值吗?
有人说会赋\0 但我用vc++调试strlen(string);后为什么是10阿

全局变量和静态变量,不管是数组还是简单变量还是复合变量,都默认全部置零。
局部变量和动态分配的变量,不管是什么变量都是随机数。
上面的例子,如果不是全局变量和静态变量,前面的四个数组元素分别为'a' 'b' 'c' '\0',后面的是随机数,否则后面是'\0'。

默认为空格啊
试一下就知道了
#include <stdio.h>
main(){
int y;
char a[10]="abc";
for(y=0;y<10;y++)
printf("%c",a[y]);
printf("%c",'2');
}

一般会的,这与编译器有关,不同的编译器,规则也不同吧
楼上不对,0用字符输出表现也是空格,但是调试一下就会发现是'\0'
DEV C++下面调试,strlen(string)是3

你傻,钻它干嘛,你又不常用