C语言中声明一个结构体,结构体中的int类型是否都被初始化为“0”?

例如:
struct mytype
{
int x;
};

mytype AAA;
那么,AAA.x的值是否被自动初始化为了“0”?
为什么我将上面的mytype AAA 用printf输出,竟然是0 ?

首先你这是C++,不是C语言。C语言必须是struct mytype AAA;
另外如果结构体变量在函数外全局区定义,那么编译器基本上会默认初始化为0;如果该结构体变量是局部的,结果未知。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-10-17
不会

未知结果

结构体申明后不会获得内存空间 需要创建实例的时候才会获得内存空间,实例初始化的内存空间的里面成员数据的值是不确定的,除非你给他赋值。

我想问一下你是怎么用sprintf输出的本回答被提问者采纳
第2个回答  2019-03-13

我试了下是0,不知道对不对

第3个回答  2010-10-16
不能 你只能在结构体创建实例后才能对其初始化,初始化的对象是实例不是结构体
第4个回答  2010-10-16
未知结果
相似回答