您的位置:首页 > 文旅 > 美景 > 招商网站大全_劳务分包网_合肥优化排名推广_淄博百度推广

招商网站大全_劳务分包网_合肥优化排名推广_淄博百度推广

2025/5/3 3:53:14 来源:https://blog.csdn.net/qq_44815135/article/details/146883809  浏览:    关键词:招商网站大全_劳务分包网_合肥优化排名推广_淄博百度推广
招商网站大全_劳务分包网_合肥优化排名推广_淄博百度推广

C++ 结构体、结构体指针与结构体指针数组详解

1. 结构体 (Struct)

结构体是C++中一种用户自定义的数据类型,它允许你将不同类型的数据组合在一起。

基本用法

// 定义一个结构体
struct Student {int id;         // 学号string name;    // 姓名float score;    // 成绩
};// 使用结构体
int main() {// 创建结构体变量Student stu1;// 访问结构体成员stu1.id = 101;stu1.name = "张三";stu1.score = 89.5;// 初始化结构体Student stu2 = {102, "李四", 92.0};return 0;
}

2. 结构体指针

结构体指针是指向结构体变量的指针,通过指针可以访问和操作结构体成员。

基本用法

int main() {Student stu = {103, "王五", 85.5};// 创建结构体指针Student* pStu = &stu;// 通过指针访问成员// 方法1:使用 -> 操作符cout << "ID: " << pStu->id << endl;cout << "Name: " << pStu->name << endl;// 方法2:先解引用再使用 . 操作符cout << "Score: " << (*pStu).score << endl;return 0;
}

3. 结构体指针数组

结构体指针数组是存放多个结构体指针的数组,常用于管理多个结构体对象。

基本用法

int main() {// 创建几个学生结构体Student stu1 = {101, "张三", 89.5};Student stu2 = {102, "李四", 92.0};Student stu3 = {103, "王五", 85.5};// 创建结构体指针数组Student* stuArray[3] = {&stu1, &stu2, &stu3};// 访问结构体指针数组元素for(int i = 0; i < 3; i++) {cout << "学生" << i+1 << ": " << stuArray[i]->name << ", 成绩: " << stuArray[i]->score << endl;}// 动态分配的结构体指针数组Student** dynamicArray = new Student*[3];dynamicArray[0] = new Student{104, "赵六", 78.0};dynamicArray[1] = new Student{105, "钱七", 95.0};dynamicArray[2] = new Student{106, "孙八", 88.5};// 使用后记得释放内存for(int i = 0; i < 3; i++) {delete dynamicArray[i];}delete[] dynamicArray;return 0;
}

实际应用示例

#include <iostream>
#include <string>
using namespace std;struct Book {string title;string author;float price;
};void printBookInfo(const Book* book) {cout << "《" << book->title << "》" << " 作者: " << book->author << " 价格: " << book->price << "元" << endl;
}int main() {// 创建几个图书结构体Book book1 = {"C++ Primer", "Stanley Lippman", 128.0};Book book2 = {"Effective C++", "Scott Meyers", 99.0};Book book3 = {"Design Patterns", "Erich Gamma", 89.5};// 创建图书指针数组Book* library[3] = {&book1, &book2, &book3};// 打印所有图书信息cout << "图书馆藏书列表:" << endl;for(int i = 0; i < 3; i++) {printBookInfo(library[i]);}return 0;
}

总结

  1. 结构体:将不同类型的数据组合成一个新的数据类型
  2. 结构体指针:指向结构体的指针,使用->操作符访问成员
  3. 结构体指针数组:存储多个结构体指针的数组,适合管理大量结构体对象

结构体指针和指针数组在管理大量数据时非常有用,可以减少数据复制的开销,提高程序效率。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com