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.pswp.cn/news/918255.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/918255.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

pdf文件转word免费使用几个工具

在线工具&#xff08;无需安装&#xff09; Smallpdf ✅ 核心功能&#xff1a; 网页端直接操作&#xff0c;支持 PDF 与 Word 格式互转 免费用户每日限 2 次转换&#xff08;免注册&#xff09; 自动清除服务器文件&#xff0c;确保隐私安全 &#x1f517; 访问链接&#xff1a…

Vue3 组件化开发

文章目录前言组件化开发底部菜单 TabMenu父子组件相互传数据父传子&#xff1a;自定义属性子传父&#xff1a;自定义事件父子组件互传案例插槽 slot多个插槽总结组件化开发总结Vue组件的基本组成子组件使用的三个步骤父子组件相互传递数据前言 提示&#xff1a;这里可以添加本…

服务器硬件电路设计之I2C问答(二):I2C总线的传输速率与上拉电阻有什么关系?

I2C 总线传输速率与上拉电阻关系密切。上拉电阻阻值决定总线电平切换速度&#xff1a;电阻越小&#xff0c;充放电电流越大&#xff0c;信号边沿更陡&#xff0c;支持更高速率&#xff08;如 400kHz 快速模式&#xff09;&#xff1b;电阻过大则切换慢&#xff0c;限制速率&…

大语言模型提示工程与应用:LLMs文本生成与数据标注实践

提示词应用实践 学习目标 本课程通过LLMs生成情感分析样本和标注葡萄9品鉴数据&#xff0c;展示了其文本生成和数据标注能力。同时&#xff0c;利用PAL模型解决日期计算问题&#xff0c;学习了LLMs与编程运行时结合实现复杂推理的方法&#xff0c;为自然语言处理应用提供了实…

node.js 零基础入门

Node.js 零 基础入门与核心语法 适用对象&#xff1a;完全没接触过 Node.js 的同学 目标&#xff1a;从 0 到能写 CLI、小型 HTTP 服务、文件脚本、调用系统/网络资源 目录 什么是 Node.js安装与运行运行脚本与 REPL模块体系&#xff1a;CommonJS 与 ES Modules基础语法在 Node…

《Day3-PyTorch 自动微分入门:从计算图到梯度下降的实践指南》

八、自动微分自动微分模块torch.autograd负责自动计算张量操作的梯度&#xff0c;具有自动求导功能。自动微分模块是构成神经网络训练的必要模块&#xff0c;可以实现网络权重参数的更新&#xff0c;使得反向传播算法的实现变得简单而高效。1. 基础概念张量Torch中一切皆为张量…

apache cgi测试

test.cgi #!/bin/sh echo "Content-type: text/html" echo "" echo "<h1>Hello from a Mac CGI script!</h1>" echo "<p>Current time is: $(date)</p>"ƒ% 放置目录 /opt/homebrew/Cellar/mapserver/8.4.0_1…

力扣 30 天 JavaScript 挑战 第二题笔记

这道题是涉及知识–闭包 1. 闭包定义以及相关知识点 官方定义为&#xff1a;在 JavaScript 中&#xff0c;函数具有对在相同作用域以及任何外部作用域中声明的所有变量的引用。这些作用域被称为函数的 词法环境。函数与其环境的组合被称为 闭包。 简单理解&#xff1a;内层函数…

OpenAI GPT-5 深度解析:API Key定价与ChatGPT(Free, Plus, Pro)用户的区别

前言&#xff1a;两年等待&#xff0c;只为这一跃 在科技圈长达两年的屏息期待与无尽猜想之后&#xff0c;2025年8月8日北京时间凌晨&#xff0c;OpenAI终于揭开了其新一代旗舰模型——GPT-5的神秘面纱。这不仅仅是一次常规的产品迭代&#xff0c;更被整个行业视为一块试金石&a…

ClickHouse集群部署实践---3分片2副本集群

ClickHouse集群部署实践—3分片2副本集群 未完待续。。。 喜欢的先点赞收藏&#xff01;&#xff01; 由于我们准备部署的是3分片2副本的集群&#xff0c;现在来解释一下配置参数的意思&#xff1a; shard标签代表分片的意思&#xff0c;如上图我们有3个分片&#xff0c;clickh…

Unity_VR_Pico开发手册

文章目录一、配置开发环境1.下载PICO Unity Integration SDK2.安装 Unity 编辑器&#xff08;添加安卓开发平台模块&#xff09;3.导入下载的SDK4.项目配置和切换开发平台5.导入 XR Interaction Toolkit6.安装 Universal RP(通用渲染管线)并设置 (选做)二、调试环境搭建&#x…

Linux系统之Docker命令与镜像、容器管理

目录 一、 Docker命令 docker命令帮助 docker常用子命令&#xff08;必须背会&#xff09; docker管理子命令(暂时不需要) swarm集群管理子命令&#xff08;不需要&#xff09; docker容器管理子命令&#xff08;必须背会&#xff09; docker全局选项 二、 docker镜像管…

比亚迪第五代DM技术:AI能耗管理的深度解析与实测验证

比亚迪第五代DM技术&#xff1a;AI能耗管理的深度解析与实测验证 &#xff08;面向新能源汽车研发/测试工程师&#xff09;目录 技术背景与核心突破AI能耗管理系统架构解析关键技术创新点 2.1 动力域三脑合一控制2.2 全温域热管理协同2.3 导航数据深度耦合 实测数据与场景验证 …

sqli-labs通关笔记-第37关POST宽字符注入(单引号闭合 手工注入+脚本注入 3种方法)

目录 一、宽字符注入 二、sqlmap之unmagicquotes 三、addslashes与mysqli_real_escape_string 四、源码分析 1、代码审计 2、SQL注入安全性分析 五、渗透实战 1、进入靶场 2、正确用户名密码探测 3、手工注入&#xff08;方法1&#xff09; &#xff08;1&#xff…

Kubernetes 集群密钥与机密管理方案对比分析:Vault、Sealed Secrets 与 AWS KMS

Kubernetes 集群密钥与机密管理方案对比分析&#xff1a;Vault、Sealed Secrets 与 AWS KMS 在容器化与编排环境中&#xff0c;机密&#xff08;Secrets&#xff09;管理是确保应用安全性的重要环节。对于 Kubernetes 集群而言&#xff0c;内置的 Secret 对象存在明文存储的风…

Java基础-TCP通信单服务器接受多客户端

目录 案例要求&#xff1a; 实现思路&#xff1a; 代码&#xff1a; User类&#xff1a;用户端 Client类&#xff1a;服务端 ServerReader类&#xff1a;多线程通信类 总结&#xff1a; 案例要求&#xff1a; TCP通信下,正常的写法只能单个服务器和单个客户端进行通信&a…

electron:vue3+vite打包案例

1、安装electron 首先设置镜像源&#xff0c;否则安装会非常非常慢。 打开npm的配置文件。 npm config edit 修改配置项。 registryhttps://registry.npmmirror.com electron_mirrorhttps://cdn.npmmirror.com/binaries/electron/ electron_builder_binaries_mirrorhttp…

traceroute命令调试网络

文章目录 @[toc] 一、核心原理与参数解析 1. 工作原理 2. 关键参数 二、六大运维场景实战 场景1:内网服务器无法访问公网 场景2:跨国访问延迟高(电商业务卡顿) 场景3:VPN分流异常(流量泄露) 场景4:检测DNS劫持 场景5:防火墙规则验证 场景6:云服务跨区延迟优化 三、高…

自己本地搭建的服务器怎么接公网?公网IP直连服务器方法,和只有内网IP直接映射到互联网

​ 你是不是也遇到过这样的问题&#xff1a;在家里或者公司搭建了一个服务器&#xff0c;但是不知道怎么通过公网IP直接访问它&#xff1f;别急&#xff0c;其实很简单&#xff01;今天就给大家分享几种方法&#xff0c;手把手教你如何实现公网IP直连服务器&#xff0c;和无公网…

MATLAB中文乱码的解决方法

文章目录问题描述解决方法问题描述 对于matlab脚本输出乱码&#xff1a; ‘ʮ&#xfffd;&#xfffd;&#xfffd;&#xfffd;Ф&#xfffd;&#xfffd;&#xfffd;&#xfffd;һ&#xfffd;&#xfffd;&#xfffd;&#xfffd;&#xfffd;й&#xfffd;&#xff…