我有一个关于C语言中静态变量初始化的问题。我知道如果我们声明一个全局的静态变量,默认值是0
。例如:
static int a; //although we do not initialize it, the value of a is 0
但是以下数据结构怎么办:
typedef struct
{
int a;
int b;
int c;
} Hello;
static Hello hello[3];
hello[0]
、hello[1]
、hello[2]
结构体中的所有成员都被初始化为 0
吗?
a[0] = -1;
- lfalkaua
(并未初始化)后,读取a[0]
或a[1]
将会导致未定义行为。在对a[0]
进行赋值之后,您可以安全地从中读取,但不能从a[1]
中读取。 - pmg