c++ 创建结构体初始化时全部置零
时间: 2023-09-15 07:24:41 浏览: 303
C++中结构体的类型定义和初始化以及变量引用
在C++中,可以使用以下两种方法来将结构体初始化为零:
方法一:使用默认构造函数
```cpp
struct MyStruct {
int a;
float b;
char c;
};
int main() {
MyStruct s1{}; // 使用大括号初始化,将所有成员置零
// 或者可以使用以下方式:
// MyStruct s1 = {};
// MyStruct s1 = {0};
// MyStruct s1 = {0, 0.0f, '\0'};
// 输出结果
std::cout << s1.a << " " << s1.b << " " << s1.c << std::endl;
return 0;
}
```
方法二:使用memset函数
```cpp
#include <cstring> // 必须包含头文件才能使用memset函数
struct MyStruct {
int a;
float b;
char c;
};
int main() {
MyStruct s1;
memset(&s1, 0, sizeof(s1)); // 使用memset将结构体的内存全部置零
// 输出结果
std::cout << s1.a << " " << s1.b << " " << s1.c << std::endl;
return 0;
}
```
这两种方法都可以将结构体的成员值初始化为零。注意,第二种方法需要包含头文件 `<cstring>` 并使用 `memset` 函数来实现。
阅读全文