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

C++ 结构体详解:定义、初始化、指针、函数参数与局限性

什么是 C++ 结构体?

结构体 是 C++ 可将不同数据类型的元素组合存储的数据结构。在 C++ 中,结构体是用户自定义数据类型,将不同类型的数据项归为单一类型。

例如:需存储某人姓名、国籍、年龄。可分别创建 name、citizenship、age 变量分别存储。但若未来需存储多人信息,不同个体的变量会成倍增加(name1、citizenship1、age1…)。使用结构体可避免此问题。

本教程你将学到:

何时使用结构体?

使用结构体的理由:

C++ 结构体初始化

创建结构体用 struct 关键字加标识符,标识符成为结构体名。语法:

struct struct_name { // struct members } 

结构体成员置于大括号内,可属于不同数据类型。

示例:

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

上例中 Person 结构体有三个成员:name、citizenship、age。一个成员为 char 类型,其余两个为整型。结构体创建时不分配内存,只有添加变量时才分配。

创建结构体实例

上例创建了 Person 结构体,可按如下方式创建结构体变量:

Person p; 

p 是 Person 类型的结构体变量,可用它访问结构体成员。

访问结构体成员

用结构体实例和点运算符(.)访问成员。如访问 Person 的 age 成员:

p.age = 27; 

通过实例 p 访问 age 成员并赋值 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; } 

输出:

C++ 结构体详解:定义、初始化、指针、函数参数与局限性

代码截图:

C++ 结构体详解:定义、初始化、指针、函数参数与局限性

结构体指针

可创建指向结构体的指针,类似于指向 int、float、double 等基本类型的指针。指针存储内存地址。

示例 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; } 

输出:

C++ 结构体详解:定义、初始化、指针、函数参数与局限性

代码截图:

C++ 结构体详解:定义、初始化、指针、函数参数与局限性

结构体作为函数参数

可将结构体作为参数传递给函数,方式同普通参数。结构体变量也可传给函数。典型场景如显示结构体成员值。演示如下:

示例 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; } 

输出:

C++ 结构体详解:定义、初始化、指针、函数参数与局限性

代码截图:

C++ 结构体详解:定义、初始化、指针、函数参数与局限性

C++ 结构体的局限性

总结

C语言

  1. 精通C语言结构体与指针:实战指南
  2. C++ 运算符全解析:类型、示例与示例程序
  3. C++ do-while 循环详解:语法、实战示例与嵌套循环
  4. 掌握 C++ switch-case:语法、用法与实战示例
  5. C++ 动态数组分配实战指南:new/delete、初始化、扩容与内存管理
  6. C++ 指针精通:核心概念、代码示例与实战应用
  7. C++ char 类型完全指南:声明、ASCII 码、输入输出与字符串转换
  8. C++ 运算符重载实战指南:语法、方法、限制与代码示例
  9. C++ std::map 完全指南:键值对容器、核心操作与实战代码
  10. 掌握 C++ std::list:语法、函数与实战示例
  11. C++ 函数详解:从声明到调用的实战指南
  12. C++ Struct 与 Class 核心差异、语法及最佳实践