C++ | 函数传入引用参数
发布日期:2021-07-25 15:44:24 浏览次数:9 分类:技术文章

本文共 1377 字,大约阅读时间需要 4 分钟。

  • 函数定义里小括号内称为形参,函数调用时传入的参数称为实参
  • 当调用函数的时候,实参的值会传递给形参。

一. 函数传入引用参数

  • 引用的作用是为一个变量起一个别名。

01 建立一个引用

#include 
using std::cin;using std::cout;using std::endl;int main(){
int a = 5; int &b = a; cout<
<
  • 经过声明后b是a别名,b与a代表的是同一个变量,占内存中同一个存储单元,具有同一地址。
代码输出

在这里插入图片描述

⚠️注意&符号作为取地址符与作为引用声明符的区别。

  • 只有在数据类型后&才是引用声明符

02 使用引用的一些注意事项:

  1. 声明一个引用时,必须同时使之初始化,及声明它代表哪一个变量。
  2. 有一个例外,引用作为函数参数时,不需要初始化。
  3. 在声明一个引用后,不能再使之作为另一变量的引用。
  4. 不能建立引用数组。

03 引用的作用

  • 引用最重要的意义在于作为函数的参数,以扩充函数传递参数的能力。

04 调用函数时,传参的三种形式:

1. 变量名作为实参和形参 —— “值传递”
  • 这种方式传给形参的是变量的值,传递是单向的。
  • 如果在执行函数器件形参的值变了,不会回传给实参。
2. 传递变量的地址 —— “值传递”
  • 该方式形参是指针变量,实参是一个变量的地址。
  • 调用函数时,形参得到的实参变量的地址,因此指向实参的变量单元。
#include 
using 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. 引用作为函数参数 —— “变量传递”
#include 
using 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 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:学习笔记 | 职场人必修 | 结构化思考与沟通
下一篇:《SQL必知必会》| 第22课 高级SQL特性 学习笔记

发表评论

最新留言

路过按个爪印,很不错,赞一个!
[***.219.124.196]2024年04月10日 13时00分53秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章