21xrx.com
2024-09-17 04:42:51 Tuesday
登录
文章检索 我的文章 写文章
C++ 结构体初始化方法
2023-07-08 08:36:42 深夜i     --     --
C++ 结构体 初始化方法 语法 示例

C++ 结构体是一种用户自定义的数据类型,它可以用来组合不同类型的数据,方便地在程序中进行使用。而结构体的初始化是一个比较常见的操作,本文将介绍 C++ 结构体初始化的方法。

一、使用默认初始化

如果不给结构体赋初值,它将被默认初始化,即所有的成员变量将会被赋予适当的默认值。例如,对于一个结构体如下所示:


struct Student {

  int id;

  char name[20];

  int score;

};

使用默认初始化可以这样写代码:


int main() 使用默认初始化

  // 输出 s 的成员变量值

  cout << s.id << endl;

  cout << s.name << endl;

  cout << s.score << endl;

  return 0;

运行结果为:


0

(empty string)

0

二、使用赋值号初始化

可以使用赋值号来给结构体的成员变量赋初值,示例如下:


int main() {

  Student s; // 定义一个 Student 类型的结构体 s

  // 给 s 的成员变量赋初值

  s.id = 1;

  strcpy(s.name, "Tom");

  s.score = 90;

  // 输出 s 的成员变量值

  cout << s.id << endl;

  cout << s.name << endl;

  cout << s.score << endl;

  return 0;

}

输出结果为:


1

Tom

90

三、使用花括号初始化

C++11 引入了列表初始化的语法,可以使用花括号来对结构体进行初始化,示例如下:


int main() {

  Student s = 1; // 定义一个 Student 类型的结构体 s,使用花括号初始化

  // 输出 s 的成员变量值

  cout << s.id << endl;

  cout << s.name << endl;

  cout << s.score << endl;

  return 0;

}

输出结果同上。

需要注意的是,使用花括号初始化时需要按照结构体定义的顺序给成员变量赋值,而且不能省略任何一个成员变量,否则将导致编译错误。

总结:

C++ 结构体初始化的方法有三种:默认初始化、赋值号初始化和花括号初始化。默认初始化可以自动给结构体的成员变量赋默认值,其他两种方式则需要显式地指定每个变量的初值。具体选择哪种初始化方式,视具体情况而定。

  
  

评论区

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