c++中char数组初始化后在没有赋值的位置为什么显示为a

2025-04-17 05:00:04
推荐回答(4个)
回答1:

没有赋值的时候进行输出可能会输出任意字符(空字符也有可能)。
因为char数组未赋值前,系统会令数组指针随机的指向任意一块可利用的地址。而这块可利用的地址也许在很久以前存储的字符为‘a’

回答2:

仔细检测下程序,cha[3]是否在其他地方赋值过。或者cout << cha[3]之前还有其他的输出。

字符串数组初始化:指定的部分按指定的字符初始化,剩余部分都初始化成'\0'.

回答3:

编译器的问题吧,我用的VS2008输出的是ASCII值为0所对应的空值(也就是'\0'或者说是NUL,不是空格)
另外,GCC也一样输出空值

回答4:

你的应该是要这样的:
char cha[100] = {'0','1','2',0};
cout<
你的cout<