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

c语言中函数的形参test(int *a)?

今天在看一段c代码的时候看到一个函数的形参是(int *&a)居然是这个东西,这让我好生疑惑啊,不知道用这么多的地址符号用意何在呢?传址么?

那也不必这样,只需要用指针完全能够达到这样的效果啊,交换两个整形变量的数据,只要定义一个函数 swap(int* a,int *b) 在函数里面交换*a和*b的值即可了,这样便达到了修改形参而且改变实参的作用呀。

于是我去图书馆拿了一本c语言语法的书籍,发现&符号是取地址的作用,那么*&是个啥东西呢,一直没有看见。

最后在c++的一本书上也看见&这个符号,居然看了看了另外一种用法,“引用"运算符。是放在类型后面的,如int &a 这样&就是不取地址的意思了,而且对形参a进行引用.

举个例子说明一下吧

引用参数 swap(int&a,int &b)  然后调用的时候只需要swap(a,b)这样也能达到传址的作用,实际上是引用参数把实参换了一个别名而已,对引用形参进行操作实际就是对实参进行操作。

这种用法在c中是没看见的,在c++中出现过,通过在c++中了解的&运算符还有做引用这样的用法,那么来解释今天看见过的函数形参test(int* &a);

先前就说过了,&作为引用的用法是,是放在类型后面,此形参是将int* 看成一个整形指针类型,那么int* &a这个形参a代表int* 类型的引用参数

所用调用时,int * a=&b;  test(a);即可。那么作用是,在test函数中操作a指针相当于操作实参中的a指针。

哎,懂得指针的朋友看了这种用法,这多多此一举。搞的这么复杂。

说了这么多,说的自己都云里雾里,如果有朋友看了这篇文章还有不清楚地,欢迎来提问,相互进步。

转载于:https://www.cnblogs.com/mingjiatang/p/3967370.html

相关文章:

  • Core Bluetooth下实现两个设备进行互联
  • MyEclipse开发WebService教程
  • noi 2989 糖果
  • 微软Hyper-v管理——迁移虚拟(奇葩问题)
  • [Android Pro] listView和GridView的item设置的高度和宽度不起作用
  • 每天学点数据结构与算法
  • Zabbix服务器监控系统部署之自定义监控项的添加及配置(二)
  • PYTHON 黑帽编程 1.5 使用 WIRESHARK 练习网络协议分析
  • Javascript 函数节流
  • 利用python做数据分析(六)-reindex
  • GitHub 小试
  • Actor模式的弊端
  • 广告
  • 自学的IT程序员通常缺少哪些技能
  • IOS中获取各种文件的目录路径的方法
  • 【挥舞JS】JS实现继承,封装一个extends方法
  • HomeBrew常规使用教程
  • Java教程_软件开发基础
  • JSDuck 与 AngularJS 融合技巧
  • Sublime Text 2/3 绑定Eclipse快捷键
  • 爱情 北京女病人
  • 产品三维模型在线预览
  • 初识 beanstalkd
  • 从0搭建SpringBoot的HelloWorld -- Java版本
  • 移动互联网+智能运营体系搭建=你家有金矿啊!
  • scrapy中间件源码分析及常用中间件大全
  • ​LeetCode解法汇总2583. 二叉树中的第 K 大层和
  • ​直流电和交流电有什么区别为什么这个时候又要变成直流电呢?交流转换到直流(整流器)直流变交流(逆变器)​
  • # include “ “ 和 # include < >两者的区别
  • ${ }的特别功能
  • (第一天)包装对象、作用域、创建对象
  • (二)fiber的基本认识
  • (轉貼) VS2005 快捷键 (初級) (.NET) (Visual Studio)
  • .mysql secret在哪_MYSQL基本操作(上)
  • .NET Core 中插件式开发实现
  • .NET/C# 阻止屏幕关闭,阻止系统进入睡眠状态
  • .NETCORE 开发登录接口MFA谷歌多因子身份验证
  • .NET基础篇——反射的奥妙
  • .net实现头像缩放截取功能 -----转载自accp教程网
  • /var/spool/postfix/maildrop 下有大量文件
  • @AliasFor注解
  • @reference注解_Dubbo配置参考手册之dubbo:reference
  • @SentinelResource详解
  • @SuppressWarnings(unchecked)代码的作用
  • @Transactional类内部访问失效原因详解
  • [ vulhub漏洞复现篇 ] GhostScript 沙箱绕过(任意命令执行)漏洞CVE-2019-6116
  • [ 蓝桥杯Web真题 ]-Markdown 文档解析
  • [AIGC] 开源流程引擎哪个好,如何选型?
  • [AR Foundation] 人脸检测的流程
  • [BUG] Authentication Error
  • [C#]手把手教你打造Socket的TCP通讯连接(一)
  • [Docker]十.Docker Swarm讲解
  • [echarts] y轴不显示0
  • [EFI]ASUS EX-B365M-V5 Gold G5400 CPU电脑 Hackintosh 黑苹果引导文件
  • [FxCop.设计规则]8. 也许参数类型应该是基类型