亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Industrial programming >> C语言

C++ 结构与示例

什么是 C++ 中的结构体?

A 结构 是一种 C++ 数据结构,可用于将不同数据类型的元素存储在一起。在 C++ 中,结构是用户定义的数据类型。该结构创建了一种数据类型,用于将不同数据类型的项分组到一个数据类型下。

例如:

假设您需要存储有关某人、他们的姓名、公民身份和年龄的信息。您可以创建姓名、公民身份和年龄等变量来分别存储数据。

但是,您将来可能需要存储有关许多人的信息。这意味着将创建不同个体的变量。比如name1、citizenship1、age1等。为了避免这种情况,最好创建一个struct。

在本 C++ 教程中,您将学习:

何时使用结构?

以下是在 C++ 中使用结构的一些原因。

C++ 结构体初始化

要创建 C++ 结构,我们使用 struct 关键字,后跟标识符。标识符成为结构的名称。以下是创建 C++ 结构的语法:

语法:

struct struct_name  
{  
     // struct members
}   

在上面的语法中,我们使用了 struct 关键字。 struct_name 是结构的名称。

结构成员添加在花括号内。这些成员可能属于不同的数据类型。

例如:

struct Person  
{  
    char name[30];  
     int citizenship;  
     int age;  
}  

在上面的示例中,Person 是一个具有三个成员的结构。成员包括姓名、国籍和年龄。一个成员是 char 数据类型,而其余 2 个是整数,当创建结构时,不分配内存。仅在将变量添加到结构后才分配内存。

创建结构实例

在上面的例子中,我们创建了一个名为 Person 的结构体。我们可以如下创建一个struct变量:

Person p;

p 是 Person 类型的结构变量。我们可以使用这个变量来访问结构体的成员。

访问结构成员

要访问结构成员,我们使用结构的实例和点 (.) 运算符。例如访问struct Person的成员年龄:

p.age = 27;

我们已经使用结构体的实例 p 访问了结构体 Person 的成员年龄。然后我们将成员年龄的值设置为 27。

示例 1:

#include <iostream>    
using namespace std;
struct Person
{
	int citizenship;
	int age;
};
int main(void) {
	struct Person p;
	p.citizenship = 1;
	p.age = 27;
	cout << "Person citizenship: " << p.citizenship << endl;
	cout << "Person age: " << p.age << endl;

	return 0;
}

输出:

下面是代码截图:

代码说明:

  1. 在我们的程序中包含 iostream 头文件以使用其中定义的函数。
  2. 包含 std 命名空间以使用其类而不调用它。
  3. 创建一个名为 Person 的结构。
  4. 结构体的开头。
  5. 创建一个名为Citizenship 的整数类型的结构成员。
  6. 创建一个名为 age 的整数类型的结构成员。
  7. 结构体结束。
  8. 调用 main() 函数。程序逻辑应添加到此函数的主体中。
  9. 创建结构体 Person 的实例并将其命名为 p。
  10. 将结构成员公民身份的值设置为 1。
  11. 将结构成员年龄的值设置为 27。
  12. 在控制台上打印结构成员公民身份的值以及其他一些文本。
  13. 在控制台上打印结构成员年龄的值以及其他一些文本。
  14. 如果程序运行成功,应该返回一个值。
  15. main() 函数结束。

指向结构的指针

可以创建指向结构的指针。它类似于如何创建指向本机数据类型(如 int、float、double 等)的指针。请注意,C++ 中的指针将存储一个内存位置。

示例 2:

#include <iostream>
using namespace std;

struct Length
{
	int meters;
	float centimeters;
};

int main()
{
	Length *ptr, l;

	ptr = &l;

	cout << "Enter meters: ";
	cin >> (*ptr).meters;
	cout << "Enter centimeters: ";
	cin >> (*ptr).centimeters;
	cout << "Length = " << (*ptr).meters << " meters " << (*ptr).centimeters << " centimeters";

	return 0;
}

输出:

下面是代码截图:

代码说明:

  1. 在我们的程序中包含 iostream 头文件以便使用它的功能。
  2. 在我们的程序中包含 std 命名空间,以便在不调用它的情况下使用它的类。
  3. 创建一个名为 Length 的结构体。
  4. 结构体长度的开始。
  5. 创建一个名为meters的整数数据类型的结构成员。
  6. 创建一个名为 cm 的整数类型的结构成员。
  7. 结构体长度结束。
  8. 调用 main() 函数。
  9. main() 函数体的开始。
  10. 创建一个指针变量 *ptr 和一个长度类型的普通变量 l。
  11. 将变量 l 的地址存储在我们的指针变量中。
  12. 在控制台上显示一条消息,要求用户输入变量仪表的值。
  13. 读取用户通过键盘输入的值。成员函数meters在这里使用指针变量访问。
  14. 在控制台上显示一条消息,要求用户输入可变厘米的值。
  15. 读取用户通过键盘输入的值。这里使用指针变量访问成员函数 cm。
  16. 在控制台上显示从用户读取的值以及其他一些文本。
  17. 程序必须在成功执行后返回一个值。
  18. main() 函数主体的结尾。

作为函数参数的结构

您可以将结构作为参数传递给函数。这与传递普通参数的方式相同。结构变量也可以传递给函数。一个很好的例子是当您需要显示结构成员的值时。让我们演示一下:

示例 3:

#include<iostream>
using namespace std;

struct Person
{
	int citizenship;
	int age;
};

void func(struct Person p);

int main()
{
	struct Person p;

	p.citizenship = 1;
	p.age = 27;

	func(p);
	return 0;
}
void func(struct Person p)
{
	cout << " Person citizenship: " << p.citizenship<<endl;
	cout << " Person age: " << p.age;
}

输出:

下面是代码截图:

代码说明:

  1. 将 iostream 头文件包含到我们的文件中。然后我们将使用它的功能而不会出错。
  2. 在我们的程序中包含 std 命名空间以使用它的类。我们不需要调用命名空间来使用它的类。
  3. 创建一个名为 Person 的结构。
  4. Person 结构体的开始。
  5. 创建 struct Person 的成员。该成员被命名为公民,并且是整数类型。
  6. 创建 struct Person 的成员。该成员名为 age 并且是整数类型。
  7. 结构体主体的结尾。
  8. 创建一个函数,将 struct Person 的实例 p 作为参数。
  9. 调用主函数。 { 标志着 main() 函数体的开始。
  10. 创建一个 struct Person 实例并将其命名为 p。
  11. 使用结构体的实例 p 访问结构体成员变量公民身份,并将其赋值为 1。
  12. 使用结构体的实例 p 访问结构体成员变量 age,并将其赋值为 27。
  13. 调用函数并将结构 Person 的实例 p 作为参数传递给它。
  14. 函数必须在成功执行后返回一个值。
  15. main() 函数主体的结尾。
  16. 创建函数体。
  17. 函数体的开始。
  18. 访问结构成员公民值并将其与其他文本一起打印在控制台上。
  19. 访问结构成员年龄值并将其与其他文本一起打印在控制台上。
  20. 函数体结束。

C++ 结构的限制

以下是结构的局限性:

总结:


C语言

  1. C 结构体和指针
  2. C++ 中的运算符示例:什么是、类型和程序
  3. C++ do...while 循环与示例
  4. 带有示例的 C++ Switch Case 语句
  5. C++ 动态分配数组的例子
  6. 带有示例的 C++ 指针
  7. C++ Char 数据类型及示例
  8. 带有示例的 C++ 运算符重载
  9. 带有打印示例的 C++ 标准模板库 (STL) 中的映射
  10. C++ 中的 std::list 示例
  11. 带有程序示例的 C++ 函数
  12. 结构和类的区别:用 C++ 示例解释