当前位置: 首页 > news >正文

C++的结构体指针

结构体变量和结构体指针的区别

特性结构体变量结构体指针
存储内容结构体的实际数据内存地址
内存开销结构体总大小固定4/8字节(指针大小)
成员访问运算符.->
函数传参时的行为值拷贝(新副本)地址传递(操作原数据)
修改效果不影响原结构体直接影响原结构体

 


 

结构体指针作为函数参数的优势与注意事项

  • 当需要跨函数修改原结构体或结构体较大时,应使用指针传递。

  • 结构体指针通过内存地址直接操作原始数据,效率更高。

  • 指针访问成员时必须确保指针已正确初始化(指向有效内存)。

 


 

示例

  • 代码
    #include <iostream>
    #include <string>
    using namespace std;struct Book{string title;double price;int value;
    };int main(){Book a = {"三国演义",39.99,100};Book b = a;cout << a.title << ' ' << a.price << ' ' << a.value << endl;cout << b.title << ' ' << b.price << ' ' << b.value << endl;    cout << endl;b.title = "水浒传";cout << a.title << ' ' << a.price << ' ' << a.value << endl;cout << b.title << ' ' << b.price << ' ' << b.value << endl;    cout << endl;Book* p = &a;p->title = "红楼梦";cout << a.title << ' ' << a.price << ' ' << a.value << endl;cout << b.title << ' ' << b.price << ' ' << b.value << endl;    cout << p->title << ' ' << p->price << ' ' << p->value << endl;return 0;
    }
    
  • 运行
    三国演义 39.99 100
    三国演义 39.99 100三国演义 39.99 100
    水浒传 39.99 100红楼梦 39.99 100
    水浒传 39.99 100
    红楼梦 39.99 100
    
http://www.lryc.cn/news/615568.html

相关文章:

  • 密集遮挡场景识别率↑31%!陌讯轻量化部署方案在智慧零售的实战解析
  • Linux文件操作详解:一切皆文件
  • app功能测试工具
  • 智慧水务漏检率↓75%:陌讯水下视觉监测方案实战解析
  • 动态规划(相同地方不同状态)
  • Web前端之Vue框架
  • 【牛客刷题】小红的区间删除
  • MM-2025 | 浙大vivo需求驱动的具身导航!CogDDN:具有基于决策优化和双过程思维的认知驱动导航方法
  • 客服Agent革命:智能客服系统的技术实现与效果评估
  • PyQt5技术栈简述
  • 如何搭建ELK
  • 【Spring Boot 快速入门】八、登录认证(二)统一拦截
  • 环路补偿知识
  • 算法_python_学习记录_01
  • 比较useCallback、useMemo 和 React.memo
  • leetcode 11. 盛最多水的容器 -java
  • 欢迎走进《励曼旋耕》
  • HarvardX TinyML小笔记1(番外2:神经网络)
  • 物联网之常见网络配置
  • UE破碎Chaos分配模型内部面材质
  • 编程速递:2025 年巴西 Embarcadero 会议,期待您的到来
  • 【unitrix数间混合计算】2.10 小数部分特征(bin_frac.rs)
  • 【QT】QMainWindow:打造专业级桌面应用的基石
  • pdf预览Vue-PDF-Embed
  • Linux下管道的实现
  • js获取当前时间
  • 基于dynamic的Druid 与 HikariCP 连接池集成配置区别
  • Web自动化技术选择
  • [Oracle] TRUNC()函数
  • 11. 为什么要用static关键字