以下是我在VC6 + Debug/Release方式的代码和输出:
程序代码:
#include <stdio.h>
#include <stdlib.h>
int init_array_test()
{
int arr[3][3];
int i, j;
for (i=0; i<3; i++)
{
for (j=0; j<3; j++)
{
printf("%08X\n", arr[i][j]);
}
}
return 0;
}
int main(void)
{
init_array_test();
return 0;
}
.
1. Debug方式的某次输出:
CCCCCCCC
CCCCCCCC
CCCCCCCC
CCCCCCCC
CCCCCCCC
CCCCCCCC
CCCCCCCC
CCCCCCCC
CCCCCCCC
.
2. Release方式的某次输出:
00000800
00241FE4
00000014
0012FFC0
00401B01
00000800
00000004
0012F7BC
00401BBC
结论:
1. 如果不显式初始化,也没有通过别的途径来设置数组的值,而仅仅只是定义之,那么它在内存中的初始值是垃圾数据。
2. 可以这样显式地初始化为0:
int arr[3][3] = {0};
[
本帖最后由 prankmoon 于 2009-9-18 00:49 编辑 ]