先看看下面这段代码:
int a1;
char c1;
string str1;
int intArr1[10];
char charArr1[10];
int main() {
int a2;
char c2;
string str2;
int intArr2[10];
char charArr2[10];
cout<<"a1:"<<a1<<endl;
cout<<"a2:"<<a2<<endl;
cout<<"c1:"<<c1<<endl;
cout<<"c2:"<<c2<<endl;
cout<<"str1:"<<str1<<endl;
cout<<"str2:"<<str2<<endl;
for(int i=0;i<5;i++)
{
cout<<"intArr1["<<i<<"]:"<<intArr1[i]<<endl;
cout<<"intArr2["<<i<<"]:"<<intArr2[i]<<endl;
cout<<"charArr1["<<i<<"]:"<<charArr1[i]<<endl;
cout<<"charArr2["<<i<<"]:"<<charArr2[i]<<endl;
}
}
输出结果为:
a1:0
a2:-1
c1:
c2:w
str1:
str2:
intArr1[0]:0
intArr2[0]:2090334388
charArr1[0]:
charArr2[0]:"
intArr1[1]:0
intArr2[1]:4083432
charArr1[1]:
charArr2[1]:
intArr1[2]:0
intArr2[2]:2090334468
charArr1[2]:
charArr2[2]:?
intArr1[3]:0
intArr2[3]:8
charArr1[3]:
charArr2[3]:\
intArr1[4]:0
intArr2[4]:4083304
charArr1[4]:
charArr2[4]:?
从运行的结果我们可以看出,全局的int 型变量默认值位0,而局部变量值不确定。char 型跟int 型一样。string 类型全局变量和局部变量都默认为空串,数组类型,int 和char 类型的数组全局变量每项都有确定的默认值,局部变量每一项的默认值都不确定。