21xrx.com
2024-12-22 20:20:59 Sunday
登录
文章检索 我的文章 写文章
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++ 结构体的几种初始化方式。不同的初始化方式适用于不同的场景,程序员可以根据实际需求选择合适的方法。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复