C++ 中,类名 & 变量名 是什么意思?

2024-11-14 21:58:11
推荐回答(2个)
回答1:

这是c++相对于c新引入的一个概念——引用
引用的性质基本和指针一样。
在平时写函数的时候,假如你在调用的时候传了一个参数v而没用“引用”或者“指针”,那么你写的函数里的v和主程序里的v是毫不相干的。就是函数里面把v的值变了,在函数体结束了以后,主程序里的v依然保持函数调用前的值。
但是有的时候你需要让两个v都改变。比如说你想写一个swap(a,b)函数(交换a,b的值)。这个时候你用普通的传参数的方法是不行的。要么你用指针
void swap(int *pointa,int *pointb)
要么你在函数定义的时候就申明,传的参数是一个引用
void swap(int &a,int &b)【注:这两个语句都是函数申明】
就我现在的编程体会来看,引用和指针基本没有功能上的区别,唯一的区别就是在函数体里面使用的时候指针有指针的一套赋值、取类成员的方法,而引用的使用方法基本和一般变量一样
有问题请留言或追问

回答2:

&表示引用。“&变量名”,就相当于给变量取的一个别名。因为主程序向子程序传递形参后不改变原变量的值。如果想改变原变量的值,就要用指针来传递变量的地址从而改变变量的值。但用指针的话可读性就不是太好,所以用“&变量名”作为变量的别名,既能改变原变量的值,也好让人看懂,就是可读性强,程序就简洁易懂多了。