C++ 结构体
本文介绍了 C++ 中的结构体以及如何定义和使用结构体。
结构是不同数据类型的变量的集合。它类似于一个类,两者都是拥有不同数据类型的数据集合。
例如: 您想存储有关某人的一些信息:他/她的姓名、公民身份证和工资。您可以简单的创建不同的变量 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 p;
这里,一个结构变量 p
被定义为结构体 Person
类型。
当定义了结构体变量时,编译器才分配所需的内存。
考虑到你有 32 位或 64 位系统,float
占用是 4 字节,int
是 4 字节, char
是 1 字节。
因此,为结构变量 p
分配了 58 字节的内存.
如何访问结构的成员?
使用 点 (.) 运算符访问结构变量的成员。
假设,你想访问结构体变量 p
的 age
并为其分配 50
。您可以使用以下代码执行此任务:
p.age = 50;
示例:C++ 结构
C++ 程序将数据分配给结构变量的成员并显示它。
#include <iostream>
using namespace std;
struct Person
{
char name[50];
int age;
float salary;
};
int main()
{
Person p1;
cout << "Enter Full name: ";
cin.get(p1.name, 50);
cout << "Enter age: ";
cin >> p1.age;
cout << "Enter salary: ";
cin >> p1.salary;
cout << "\nDisplaying Information." << endl;
cout << "Name: " << p1.name << endl;
cout <<"Age: " << p1.age << endl;
cout << "Salary: " << p1.salary;
return 0;
}
输出
Enter Full name: Magdalena Dankova
Enter age: 27
Enter salary: 1024.4
Displaying Information.
Name: Magdalena Dankova
Age: 27
Salary: 1024.4
这里有一个结构体 Person
被声明为具有三个成员 name
, age
和 salary
。
在 main()
函数内部定义了一个结构变量 p1
。然后,要求用户输入信息并显示用户输入的数据。