8.9 C++引用作函数参数 | 传送变量的别名

举报
C语言入门到精通 发表于 2021/02/12 00:47:16 2021/02/12
【摘要】 C++引用作函数参数C++之所以增加引用类型,主要是把它作为函数参数,以扩充函数传递数据的功能。 小林在之前的推文中介绍过函数参数传递的两种情况。将变量名作为实参和形参,这时传给形参的是 变量的值,传递是单向的。如果在执行函数期间形 参的值发生变化,并不传回给实参。因为在调用函 数时,形参和实参不是同一个存储单元。 传递变量的指针,形参是指针变量,实参是一个变量的地址,调用函数...

C++引用作函数参数

C++之所以增加引用类型,主要是把它作为函数参数,以扩充函数传递数据的功能。 小林在之前的推文中介绍过函数参数传递的两种情况。

  • 将变量名作为实参和形参,这时传给形参的是 变量的值,传递是单向的。如果在执行函数期间形 参的值发生变化,并不传回给实参。因为在调用函 数时,形参和实参不是同一个存储单元。
  • 传递变量的指针,形参是指针变量,实参是一个变量的地址,调用函数时,形参指向 实参变量单元。

C++的这种虚实结合的方法仍然是值传递方式,只是实参的值是变量的地址而已,C++提供了向函数传递数据的第3种方法:传送变量的别名。

经典案例:C++实现传送变量的别名。

#include<iostream>//预处理
using namespace std;//命名空间
int main()//主函数
{
  void swap_Number(int &num1,int &num2);//函数声明
  int i,j;//定义整型变量
  i=4;//赋初值
  j=7;//赋初值
  swap_Number(i,j);//调用swap函数
  cout<<"i="<<i<<endl;//输出交换后的i值
  cout<<"j="<<j<<endl;//输出交换后的j值
  return 0; //函数返回值为0;
}
void swap_Number(int &num1,int &num2)//自定义交换值函数
{
  int temp;//定义中间变量
  temp=num1;
  num1=num2;
  num2=temp;
}

执行本程序之后,会输出:

i=7
j=4

--------------------------------
Process exited after 0.05149 seconds with return value 0
请按任意键继续. . .

留个问题给读者思考,这种传送变量的别名和使用指针变量作形参时有什么区别?

8.9 C++引用作函数参数 mp.weixin.qq.com图标

文章来源: zhuanlan.zhihu.com,作者:小林C语言,版权归原作者所有,如需转载,请联系作者。

原文链接:zhuanlan.zhihu.com/p/339606506

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。