C++ 结构体
- 结构体定义:C++中的结构体是不同数据类型变量的集合,类似于类。可以使用
struct
关键字来定义结构体,如struct Person { char name[50]; int age; float salary; };
。 - 声明结构体变量:定义结构体后,可以声明结构体类型的变量,如
Person bill;
。声明结构体变量时,编译器为其分配内存。 - 访问结构体成员:结构体成员可以通过点(
.
)操作符访问和修改,例如bill.age = 50;
用于访问和设置结构体变量bill
的age
成员。
结构体是不同数据类型的变量的集合,名称相同。它类似于 类,因为它们都包含不同数据类型的数据集合。
**例如:**您想存储一个人的一些信息:他/她的姓名、公民身份号码和薪水。您可以很容易地创建不同的变量 name、citNo、salary 来分别存储这些信息。
然而,将来您可能想存储多个人的信息。现在,您需要为每个人的每个信息创建不同的变量:name1、citNo1、salary1、name2、citNo2、salary2
您可以很容易地想象代码会变得多大和凌乱。此外,由于这些变量(信息)之间不存在关系,这将是一项艰巨的任务。
更好的方法是将所有相关信息收集在一个名为 Person
的单一名称下,并为每个人使用它。现在,代码看起来更加整洁、可读且高效。
这个名为 Person
的所有相关信息的集合就是结构体。
如何在 C++ 编程中声明结构体?
struct
关键字定义了一个结构体类型,后跟一个标识符(结构体的名称)。
然后在大括号内,您可以声明该结构体的一个或多个成员(在大括号内声明变量)。例如:
**struct** Person
{
char name[50];
int age;
float salary;
};
这里定义了一个名为 person 的结构体,它有三个成员:name、age 和 salary。
声明结构体时,并不会分配内存。
结构体定义只是创建变量的蓝图。您可以将其想象为一种数据类型。当您像下面这样定义一个整数时:
int foo;
int
指定变量 foo 只能容纳整数元素。类似地,结构体定义只指定当定义结构体变量时它具有什么属性。
注意: 记得用分号 (;) 结束声明
如何定义结构体变量?
一旦您声明了一个名为 person 的结构体,您可以这样定义一个结构体变量:
Person bill;
这里,定义了一个名为 bill 的结构体变量,它是结构体 Person 的类型。
当定义结构体变量时,编译器才分配所需的内存。
假设您使用的是 32 位或 64 位系统,float
的内存为 4 字节,int
的内存为 4 字节,char
的内存为 1 字节。
因此,为结构体变量 bill 分配了 58 字节的内存。
如何访问结构体的成员?
结构体变量的成员可以使用点 (.) 运算符访问。
假设,您想访问结构体变量 bill 的年龄并将其分配给 50。您可以使用以下代码执行此任务:
bill.age = 50;
示例:C++ 结构体
C++ 程序,用于分配数据给结构体变量的成员并显示它。
#include <iostream>
using namespace std;
struct Person
{
char name[50];
int age;
float salary;
};
int main()
{
Person p1;
cout << "输入全名:";
cin.get(p1.name, 50);
cout << "输入年龄:";
cin >> p1.age;
cout << "输入薪水:";
cin >> p1.salary;
cout << "\n显示信息。" << endl;
cout << "姓名:" << p1.name << endl;
cout <<"年龄:" << p1.age << endl;
cout << "薪水:" << p1.salary;
return 0;
}
输出
输入全名:Magdalena Dankova
输入年龄:27
输入薪水:1024.4
显示信息。
姓名:Magdalena Dankova
年龄:27
薪水:1024.4
这里声明了一个名为 Person 的结构体,它有三个成员 name、age 和 salary。
在 main()
函数 内,定义了一个名为 p1 的结构体变量。然后,用户被要求输入信息,并显示用户输入的数据。
您还应该查看这些与结构体相关的教程: