C++ 在函数内给变量起别名是什么意思?
发布网友
发布时间:2022-04-28 18:50
我来回答
共4个回答
热心网友
时间:2022-06-22 21:43
程序编译后 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&应用的挺多的,可以使代码简洁清晰不少.
热心网友
时间:2022-06-22 21:44
C++ 在函数内给变量起别名的意思:程序编译后 cRef与count就区分不开了,c++独有的type& 命名方式,这里只是起到一个别名(alias)的作用,相当于一个内存地址上有两个不同的名字,也就是两个不同的变量名,在使用效果上它们是完全等同的。编译后替换的是同一内存地址。
热心网友
时间:2022-06-22 21:44
起别名 就如起外号,例如 黑旋风 李逵,count 是 李逵,cRef 是 黑旋风。黑旋风++,也就是 李逵++。
目的是让 变量名 更有意义,让源程序更容易 阅读和理解。例如 count 是 计数器,cRef 是 参考计数(或别的意思,写程序的人知道)。
cRef 也是int变量,与count 等价,共享一个内存单元,cRef 增 1,count 也就 增 了 1。
int count=1;
int &cRef=count;
cRef++;
cout << count; // 输出是 2
热心网友
时间:2022-06-22 21:45
类似于一个人两个名字。管理同一块内存。