C++ | 函数传入引用参数
发布日期:2021-07-25 15:44:24
浏览次数:9
分类:技术文章
本文共 1377 字,大约阅读时间需要 4 分钟。
- 函数定义里小括号内称为形参,函数调用时传入的参数称为实参。
- 当调用函数的时候,实参的值会传递给形参。
一. 函数传入引用参数
- 引用的作用是为一个变量起一个别名。
01 建立一个引用
#includeusing std::cin;using std::cout;using std::endl;int main(){ int a = 5; int &b = a; cout< <
- 经过声明后b是a别名,b与a代表的是同一个变量,占内存中同一个存储单元,具有同一地址。
代码输出
⚠️注意&
符号作为取地址符与作为引用声明符的区别。 - 只有在数据类型后
&
才是引用声明符
02 使用引用的一些注意事项:
- 声明一个引用时,必须同时使之初始化,及声明它代表哪一个变量。
- 有一个例外,引用作为函数参数时,不需要初始化。
- 在声明一个引用后,不能再使之作为另一变量的引用。
- 不能建立引用数组。
03 引用的作用
- 引用最重要的意义在于作为函数的参数,以扩充函数传递参数的能力。
04 调用函数时,传参的三种形式:
1. 变量名作为实参和形参 —— “值传递”
- 这种方式传给形参的是变量的值,传递是单向的。
- 如果在执行函数器件形参的值变了,不会回传给实参。
2. 传递变量的地址 —— “值传递”
- 该方式形参是指针变量,实参是一个变量的地址。
- 调用函数时,形参得到的实参变量的地址,因此指向实参的变量单元。
#includeusing std::cin;using std::cout;using std::endl;int main() { void swap(int * , int * ); int i = 3, j = 5; swap( &i, &j); cout << "i=" << i << endl << "j=" << j << endl; return 0;}void swap(int * a, int * b) { int temp; temp = *a; *a = *b; *b = temp;}// 输出// i=5// j=3
- 运行结果实现了i和j的交换。
3. 引用作为函数参数 —— “变量传递”
#includeusing std::cin;using std::cout;using std::endl;int main(){ void swap(int & ,int&); int i = 3,j = 5; swap(i,j); cout << "i=" << i << endl << "j=" << j << endl; return 0;} void swap(int &a,int &b){ int temp; temp = a; a = b; b= temp;}// 输出// i=5// j=3
- 形参是声明的引用,注意这个引用并没有初始化,这就是上面提到的特例。
- 函数调用时实现了引用的初始化,这时传入的实参就是变量,而不是数值,所以做到了真正意义上的“
变量传递
”。
转载地址:https://blog.csdn.net/qq_34170700/article/details/104389168 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
路过按个爪印,很不错,赞一个!
[***.219.124.196]2024年04月10日 13时00分53秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
linux shell — 6.初识 EXT2 文件系统
2019-04-27
Java — String(字符串)
2019-04-27
linux shell — 7.linux 磁盘与文件系统管理
2019-04-27
linux shell — 8.linux 磁盘与文件系统管理(2)
2019-04-27
Java — 事件监听、事件处理 初体验
2019-04-27
linux — Centos 7(第一天) 使用时出现的问题及解决方法
2019-04-27
数据结构 — 图的概述
2019-04-27
Centos 7 上 Eclipse 无法输入中文解决方法
2019-04-27
数据结构 — 图之邻接表存储创建和深度优先遍历
2019-04-27
Centos 7 — Gedit 配色方案
2019-04-27
数据结构 — 图 之 广度优先遍历
2019-04-27
数据结构 — 图 之 MST(最小生成树 — prim算法 )
2019-04-27
数据结构 — 图 之 MPT(最短路径 — dijkstra算法 )
2019-04-27
数据结构 — 7.有向图的创建及出入度的计算
2019-04-27
数据结构 — 图 之 拓扑排序 (AOV网)
2019-04-27
数据结构 — 图 之 关键路径、关键活动 (文字表述)
2019-04-27
数据结构 — 树 与 二叉树、森林
2019-04-27
数据结构 — 二叉树(创建、遍历)java实现
2019-04-27