参考例子:http://blog.csdn.net/sibylle/article/details/2026915
1.全局数组和静态数组在未初始化的时候,规定默认初始化成0;
2.局部数组就不一样了;
如果在有值初始化,但是没有初始完时,编译器会默认初始化为0;
如果在没有值初始化的情况下,编译器会初始化为乱码;
vc6.0的测试结果如下:
#include <iostream.h>
int array1[5]={1,2,3};
static int array2[5]={1};
void main()
{
int arr1[5]={2};
int arr2[5];
static int arr3[5]={1,2};
static int arr4[5];
int n;
cout <<"global: ";
for(n=0; n<5; n++)
cout <<" " <<array1[n];
cout <<" global static: ";
for(n=0; n<5; n++)
cout <<" " <<array2[n];
cout <<" local1: ";
for(n=0; n<5; n++)
cout <<" " <<arr1[n];
cout <<" local2: ";
for(n=0; n<5; n++)
cout <<" " <<arr2[n];
cout <<" local static1: ";
for(n=0; n<5; n++)
cout <<" " <<arr3[n];
cout <<" local static2: ";
for(n=0; n<5; n++)
cout <<" " <<arr4[n];
cout <<endl;
}
2.二维数组的动态申请
<span style="white-space:pre"> </span>char **p;
int n=4;
p = new char*[n];
for(int i=0; i<n; i++)
{
p[i] = new char[n];
}