21xrx.com
2025-04-04 00:15:44 Friday
文章检索 我的文章 写文章
C++ 结构体的初始化方法
2023-07-01 08:26:43 深夜i     --     --
C++ 结构体 初始化方法

C++ 是一门强大的编程语言,结构体是其中一个非常重要的数据类型。结构体可以将若干个不同类型的数据组合成一个整体,方便程序员进行统一管理和调用。本文将详细介绍 C++ 结构体的初始化方法。

1. 直接初始化

在 C++ 中,可以使用一对大括号 {} 对结构体进行初始化,将结构体中的每个字段按顺序列出来即可。例如:

struct Person
  std::string name;
  int age;
  std::string address;
p = "Beijing";

这样就成功地对 Person 这个结构体进行了初始化。

2. 默认初始化

当没有显式地对结构体进行初始化,或者初始化时省略了一些字段,这些字段将自动被赋予默认值。其中,数字类型的默认值为0,bool 类型的默认值为 false,指针类型的默认值为 NULL。

struct Person
  std::string name;
  int age;
  std::string address;
p;
p.age = 18; // 对结构体进行部分初始化

3. 列表初始化

与直接初始化类似,也可以使用一对大括号 {} 进行列表初始化。这种方式不仅可以初始化结构体,还可以初始化数组、容器等。例如:

struct Point
  double x;
  double y;
;
Point p1 = 1.0;
Point p2 4.0;

4. 可变长度初始化

对于长度可变的结构体来说,可以使用 std::initializer_list 进行初始化。例如:

struct Vector {
  int* data;
  size_t size;
  Vector(std::initializer_list<int> list) : size(list.size()), data(new int[size]) {
    std::copy(list.begin(), list.end(), data);
  }
};
Vector v = 5;

5. 构造函数初始化

如果结构体定义了构造函数,可以通过构造函数对结构体进行初始化。例如:

struct Person {
  std::string name;
  int age;
  std::string address;
  Person(const std::string& n, int a, const std::string& addr) : name(n), age(a), address(addr) {}
};
Person p("Tom", 20, "Beijing");

以上就是 C++ 结构体的几种初始化方式。不同的初始化方式适用于不同的场景,程序员可以根据实际需求选择合适的方法。

  
  

评论区