今天学了C++中的引用,弄清了引用传递与值传递的差别。
值传递,函数不能访问请求调用的程序中的原始变量,只能访问函数为它创建的副本,所以函数无法破坏原变量。
引用传递,函数可以访问请求调用的程序中的实际变量(实际是变量的内存地址被传递了),可以改变原变量的值。
下面是一个引用传递结构的例子:
#include <iostream>using namespace std;struct Distance{ int feet; float inches;};void scale(Distance&,float)void engldisp(Distance);int main(){ Distance d1={12,6.5}; Distance d2={10,5.5}; cout<<"d1="; engldisp(d1); cout<<"\nd2="; engldisp(d2); scale(d1,0.5); scale(d2,0.25); cout<<"\nd1=";engldisp(d1); cout<<"\nd2=";engldisp(d2); cout<<endl; return 0;}void scale(Distance& dd,float factor){ float inches=(dd.feet*12+dd.inches)*factor; dd.feet=static_cast<int>(inches/12); dd.inches=inches-dd.feet*12;}void engldisp(Distance dd){ cout<<dd.feet<<"\'-"<<dd.inches<<"\"";}
原文链接: https://www.cnblogs.com/2011-9-13/archive/2011/09/13/2175223.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/32207
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!