首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

全局变量初始化,该如何解决

2012-11-08 
全局变量初始化全局变量是不是不用初始化?自动都是清零的?例如:定义全局变量:int A[100000][30]A是不是全

全局变量初始化
全局变量是不是不用初始化?自动都是清零的?

例如:定义全局变量:

int A[100000][30];


A是不是全为0,无须再:
int i=0;
int j=0;
for(i=0;i<100000;i++){
  for(j=0;j<30;j++){
  A[i][j]=0;
  }
}

[解决办法]
测试程序

C/C++ code
#include<stdio.h>int A[3][3];main(){  int i=0;  int j=0;for(i=0;i<3;i++){  for(j=0;j<3;j++){  printf("%d",A[i][j]);  }}}
[解决办法]
全局变量会自动被初始化
int 型初始化为0
char型初始化为a
[解决办法]
全局变量默认都是0,无论是什么类型的。。。
[解决办法]
全局默认初始化0
[解决办法]
探讨

全局默认初始化0

[解决办法]
C++ 0x:

3.7.1 Static storage duration [basic.stc.static]
1 All variables which do not have dynamic storage duration, do not have thread storage duration, and are not local have static storage duration.

3.6.2 Initialization of non-local variables [basic.start.init]

2 Variables with static storage duration (3.7.1) or thread storage duration (3.7.2) shall be zero-initialized (8.5) before any other initialization takes place.

所以,全局变量int A[100000][30];会用0来初始化。

当然,也可以 int A[100000][30] = {{0}};用不着循环
[解决办法]
是的。
[解决办法]
全局变量+静态变量:自动初始化为0;

热点排行