当前位置: 首页 > 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;
}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 交换机的二三层原理
  • 速盾:如何加强网站的安全性
  • 【web]-f12-iphone6
  • 分手后如何走出夜晚的抑郁,告别失眠困扰?
  • 短视频SEO矩阵系统:源码开发与部署全攻略
  • keepalive检测VIP地址漂移主备切换
  • JAVA-----String类补充
  • 使用Spring Boot实现分布式锁
  • (补充):java各种进制、原码、反码、补码和文本、图像、音频在计算机中的存储方式
  • Linux Mac 安装Higress 平替 Spring Cloud Gateway
  • Linux_网络编程_TCP
  • 汽车软件开发:ASPICE与ISO26262标准下的质量管理与控制实践
  • 【密码学基础】基于LWE(Learning with Errors)的全同态加密方案
  • 算法学习笔记(8.4)-完全背包问题
  • 【C++】C++中SDKDDKVer.h和WinSDKVer.h函数库详解
  • 「译」Node.js Streams 基础
  • 【编码】-360实习笔试编程题(二)-2016.03.29
  • CentOS 7 防火墙操作
  • gcc介绍及安装
  • Java面向对象及其三大特征
  • k8s如何管理Pod
  • QQ浏览器x5内核的兼容性问题
  • SQLServer插入数据
  • 阿里研究院入选中国企业智库系统影响力榜
  • 计算机常识 - 收藏集 - 掘金
  • 用Python写一份独特的元宵节祝福
  • 怎么把视频里的音乐提取出来
  • 关于Kubernetes Dashboard漏洞CVE-2018-18264的修复公告
  • ​Kaggle X光肺炎检测比赛第二名方案解析 | CVPR 2020 Workshop
  • # SpringBoot 如何让指定的Bean先加载
  • #Linux(Source Insight安装及工程建立)
  • #LLM入门|Prompt#3.3_存储_Memory
  • #前后端分离# 头条发布系统
  • (7)svelte 教程: Props(属性)
  • (delphi11最新学习资料) Object Pascal 学习笔记---第8章第5节(封闭类和Final方法)
  • (html转换)StringEscapeUtils类的转义与反转义方法
  • (k8s)kubernetes集群基于Containerd部署
  • (PWM呼吸灯)合泰开发板HT66F2390-----点灯大师
  • (读书笔记)Javascript高级程序设计---ECMAScript基础
  • (剑指Offer)面试题34:丑数
  • (论文阅读26/100)Weakly-supervised learning with convolutional neural networks
  • (论文阅读笔记)Network planning with deep reinforcement learning
  • (三)mysql_MYSQL(三)
  • (三)Pytorch快速搭建卷积神经网络模型实现手写数字识别(代码+详细注解)
  • (十三)Flink SQL
  • .bat批处理(十一):替换字符串中包含百分号%的子串
  • .NET I/O 学习笔记:对文件和目录进行解压缩操作
  • .net 获取url的方法
  • .net 桌面开发 运行一阵子就自动关闭_聊城旋转门家用价格大约是多少,全自动旋转门,期待合作...
  • .net实现客户区延伸至至非客户区
  • .Net下使用 Geb.Video.FFMPEG 操作视频文件
  • /usr/local/nginx/logs/nginx.pid failed (2: No such file or directory)
  • @font-face 用字体画图标
  • [ vulhub漏洞复现篇 ] Apache APISIX 默认密钥漏洞 CVE-2020-13945
  • [AIR] NativeExtension在IOS下的开发实例 --- IOS项目的创建 (一)