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

c++结构体传参

//
// Created by 徐昌真 on 2024/10/5.
//
#include <iostream>
using namespace std;//定义一个结构体
struct Circle{int x, y, r;
};//定义一个可以修改结构体内容的函数
void movePoint(Circle c, int x, int y){c.x += x;c.y += y;
}//定义一个可以输出结构体内容的函数
void printCircle(Circle c){cout << '(' << c.x << ',' << c.y << ") " << c.r << endl;
}int main() {//创建一个结构体Circle c = {1,2,3};//调用修改结构体的函数movePoint(c,1,2);//调用输出结构体的函数printCircle(c);return 0;
}

我们这样子写完之后 会发现修改的结果并没有生效 这是因为值的改变只在函数的内部 并没有在main函数内部改变 我们需要用指针 在地址里面修改值 才可以

这是输出结果

这是修改后的代码

//
// Created by 徐昌真 on 2024/10/5.
//
#include <iostream>
using namespace std;//定义一个结构体
struct Circle{int x, y, r;
};//定义一个可以修改结构体内容的函数
void movePoint(Circle* c, int x, int y){c->x += x;c->y += y;
}//定义一个可以输出结构体内容的函数
void printCircle(Circle c){cout << '(' << c.x << ',' << c.y << ") " << c.r << endl;
}int main() {//创建一个结构体Circle d = {1,2,3};//调用修改结构体的函数movePoint(&d,1,2);//调用输出结构体的函数printCircle(d);return 0;
}

我们只需传入指针类型的数据即可


http://www.mrgr.cn/news/43149.html

相关文章:

  • Vue3中使用axios
  • Java try-with-resources语句
  • 实时数仓分层架构超全解决方案
  • ThreadLocal详解:线程本地变量的艺术
  • 今日凌晨,ChatGPT重磅更新!—— 我心目中的终极AGI界面
  • 分布式事务(Seata-AT模式)
  • 外包功能测试干了4年,技术退步太明显了。。。。。​
  • 网站建设中,静态网页和动态网页分别是什么,有什么区别
  • vue2集成vuex实现网站统一数据管理
  • 蛋白质结构中原子坐标转换
  • swift使用代码结构解析
  • 大模型基础:基本概念、Prompt、RAG、Agent及多模态
  • 多系统萎缩患者的运动指南【健康守护,动出希望】
  • 涉案财务管理系统架构—交警相关系统——未来之窗行业应用跨平台架构
  • python:reportlab 将多个图片合并成一个PDF文件
  • IO操作同步、异步、阻塞、非阻塞之间的联系
  • 电源入口防护电路
  • ChatGPT-4o在临床医学日常工作、论文高效撰写与项目申报、数据分析与可视化、机器学习建模中的实践应用
  • 链表——单链表
  • 基于springboot的篮球竞赛预约平台