探测数组初值问题
//==================================================// 探测数组初值
//==================================================
#include <iostream>
using namespace std;
int array1[5]={1,2,3}; //有初始化
int array2[5]; //无初始化
int main()
{
int array3[5]={2}; //有初始化
int array4[5]; //无初始化
cout<<"array1: ";
for(int i=0; i<5; i++)
cout<<array1[i]<<" ";
cout<<"\narray2: ";
for(i=0; i<5; i++)
cout<<array2[i]<<" ";
cout<<"\narray3: ";
for(i=0; i<5; i++)
cout<<array3[i]<<" ";
cout<<"\narray4: ";
for(i=0; i<5; i++)
cout<<array4<<" ";
cout<<"\n";
return 0;
}
//==================================================
源程序是这样的,编译没错误,可以运行,但是运行的结果和书上的不大一样,就array4的结果不一样,书上的结果是这个:array4: 1245072 845597673 0 0 4198406
而这个程序运行的结果是:
array4: 0012FF58 0012FF58 0012FF58 0012FF58 0012FF58
这个应该是地址啊,开始出现的不是这个,是:array4:-845597673 -845597673 -845597673 -845597673 -845597673
出现是地址的原因是我把最后一句for循环注释起来后再编译得到的,而现在运行的结果就是这个了,即使改array4的数据类型也是这个之前,之前是不一样的。这是什么原因啊?
还有我想知道的是array2这个全局变量和array4这个局部的有什么区别啊,同样是未初始化的数组为什么一个的结果是0,而另一个就不是。
谢谢大家了。