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

我初始化一个char类型数组
char cha[100]={'0','1','2'}
cout<<cha[3]

运行之后显示的是

为什么?我看书上说,初始化一个数组,未赋值的部分会自动赋值为0,我尝试了下int数组是成立的,为什么char数组就不成立了呢?
具体程序:
#include<iostream>

void main()
{
using namespace std;
char s1[100]={'1','2','3','\0'};
char s2[100]={'1','2','3'};
cout<<s1[4]<<endl;
cout<<s2[4]<<endl;
}
运行结果:

第1个回答  2015-10-24
不同的编译器应该是不同的值,不一定是a
相似回答