C++ 在函数内给变量起别名是什么意思?
程序编译后 cRef与count就区分不开了
c++独有的type& 命名方式
这里只是起到一个别名(alias)的作用
相当于一个内存地址上有两个不同的名字
也就是两个不同的变量名, 在使用效果上它们是完全等同的
没错, 编译后替换的当然都是同一内存地址。
alias 机制只是编译器的一种优化
作用是让程序员更简单的使用变量
像你举的这种例子很少见
这种形式经常在函数参数中出现
譬如 void function(type& T);形式
最大的好处就是可以直接改变变量的值
而在c时代中,则必须通过指针或者返回值来改变
如果我们来写一段变量交换值的函数代码
c中的:
void swap(int* a,int* b){
int t=*a;
*a=*b;
*b=t;
}
c++中的:
void swap(int& a,int& b){
int t=a;
a=b;
b=t;
}
总的来说,type&应用的挺多的,可以使代码简洁清晰不少.