结构体默认初始化
时间: 2023-07-21 15:18:11 浏览: 166
结构体变量的初始化和使用
3星 · 编辑精心推荐
在定义结构体变量时,如果没有显式地初始化成员变量,那么成员变量将被默认初始化为以下值:
- 数值类型(如 int、float 等):0
- 指针类型:NULL
- 字符类型(如 char):'\0'
- 布尔类型:false
例如,对于下面的结构体:
```c
struct person {
char name[20];
int age;
float height;
struct person *spouse;
};
```
如果定义一个结构体变量时没有显式地初始化成员变量,那么该结构体变量的成员变量将分别被初始化为:
```c
struct person p; // 默认初始化
p.name[0] = '\0'; // 字符串初始化为空串
p.age = 0; // 整型初始化为0
p.height = 0.0f; // 浮点型初始化为0.0
p.spouse = NULL; // 指针初始化为NULL
```
需要注意的是,结构体成员变量的默认初始化值只在定义结构体变量时有效,如果是在函数内定义的结构体变量,则其中的成员变量不会被默认初始化,需要手动初始化。
阅读全文