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

函数(实参以及形参)

实际参数(实参)

       实际参数就是在调用函数时传递给函数的具体值。这些值可以是常量、变量、表达式或更复杂的数据结构。实参的值在函数被调用时传递给对应的形参,然后函数内部就可以使用这些值来执行相应的操作。

int main()
{int a = 0;int b = 0;scanf("%d %d", &a, &b);printf("交换前:a=%d b=%d\n", a, b);Swap(a, b);//调用函数,其中的a和b是实参printf("交换后:a=%d b=%d\n", a, b);return 0;
}

形式参数(形参)

       形式参数是函数定义中声明的变量,用于接收传递给函数的实际值。它们是在函数被调用时用于接收外部传入数据的占位符。形参仅在函数被调用时存在,并在函数执行完毕后被销毁。形参的命名只在函数内部有效,不会影响到函数外部的任何同名变量。

void Swap(int x, int y)//x和y是形参
{int temp = x;//使用中间变量tempx = y;y = temp;
}

       上面这个代码运行结果为下图显示,可见两个数交换前后并没有改变。这里可以看出形参改变不了实参,形参用完后则销毁

       下面看一下a,b,x,y的地址,发现实参和形参的地址不同,实参和形参之间没有建立联系,所以形参怎么改变都影响不到实参。既然如此,那要如何交换两个变量的值呢?

 

       接下来就讲讲,可以通过引用类型参数指针),对实参进行修改。在一些语言中(如 C/C++),可以使用指针直接访问和修改实参的值。当形参是指针时,通过指针进行的修改会反映到实参上。 

       可以这样理解*pa就是a(*是建立实参和形参之间的桥梁)。就上面这张图来说,现在有a这个位置,以及pa这个位置,左边带了*则理解为pa指向a的地址,pa的值改变了对应的a值夜进行改变。*pa=20则是表示pa指向20这个数。

 下面代码是通过指针实现交换的:

void Swap(int *pa, int *pb)
{int temp = *pa;//使用中间变量temp*pa = *pb;*pb = temp;
}int main()
{int a = 0;int b = 0;scanf("%d %d", &a, &b);printf("交换前:a=%d b=%d\n", a, b);Swap(&a, &b);printf("交换后:a=%d b=%d\n", a, b);return 0;
}

http://www.lryc.cn/news/399134.html

相关文章:

  • ArcGIS Pro SDK (八)地理数据库 8 拓扑
  • uniapp如何发送websocket请求
  • RabbitMQ的工作模式
  • 自建搜索引擎-基于美丽云
  • 2024辽宁省大学数学建模竞赛试题思路
  • 循环结构(一)——for语句【互三互三】
  • 【深度学习基础】MacOS PyCharm连接远程服务器
  • 微调Qwen2大语言模型加入领域知识
  • 【Linux】内核文件系统系统调用流程摸索
  • 【HZHY-AI300G智能盒试用连载体验】文档资料
  • Linux--深入理与解linux文件系统与日志文件分析
  • Postman 中的 API 安全性测试:最佳实践与技巧
  • PTC可复位保险丝 vs 传统型保险丝:全面对比分析
  • 深入了解Rokid UXR2.0 SDK内置的Unity AR Glass开发组件
  • Lottery 分布式抽奖(个人向记录总结)
  • 我的AI音乐梦:ChatGPT帮我做专辑
  • 新手-前端生态
  • C#中的类
  • 探索数据库编程:基础与进阶之存储函数
  • Count数据转换为TPM数据方法整理-常规方法、DGEobj.utils和IOBR包
  • 简易限流实现
  • 用Qwt进行图表和数据可视化开发
  • sqlalchemy使用with_entities返回指定数据列
  • express
  • HTML网页大设计-家乡普宁德安里
  • 深度学习:从数据采集到模型测试的全面指南
  • Excel第29享:基于sum嵌套sumifs的多条件求和
  • Elasticsearch:Node.js ECS 日志记录 - Morgan
  • ChatGPT对话:Python程序自动模拟操作网页,无法弹出下拉列表框
  • Unity 之 抖音小游戏集成排行榜功能详解