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&应用的挺多的,可以使代码简洁清晰不少.