c++的引用

来源:互联网 发布:海康网络球机接线图解 编辑:程序博客网 时间:2024/06/06 14:28

最近在自学C++,遇到了C++的引用,理解了那么一点点,所以记录下来,方便以后查看。C++引用语法上我早就懂了,但之前我不明白为什么会有引用的语法。

int main(){     int a = 10;     int &b = a;}

      上面的代码就是C++的引用语法,创建b的时候就得马上给b赋值。b就其实就相当于给a取了个另外一个名字,b和a都是同一个东西。以前的时候我就纳闷了,这样的做法有何意义,直接用a不就行了吗,为什么得给他取另外一个名字,然后用另外一个名字。下面的代码时我对引用的一些理解。

void A(int *a){    *a = 20;}void B(int &a){    a = 21;}int main(){   int age = 1;   A(&age); //age =20;   B(age);   //age = 21;}




      看完上面的代码可能更纳闷了,A和B函数都能改变age的值,A函数用指针的方法,B函数用引用的方法。直接用A不就完了吗?其实是这样的,A函数的功能和B函数的功能都是一样的,但是从执行效率上来讲B函数要快些,因为B函数用引用不用再开辟空间了。但是A函数定义int *age这个指针时还得为这个指针开辟空间。所以我个人理解是引用应该是常用于函数的形参中。

     上面我说到创建引用时应该马上赋值,可能有些人会问我在定义函数定义那个引用并没马上赋值啊!哈哈,别忘了,函数是在被调用时参数形参才会被创建。所以当B函数被调用时其实就是B(int &a = age);   

      我理解总结的是引用能做的事,指针都能做,指针能做的事,引用不一定能做。我没怎么用深入地使用C++语言做项目,很多理解可能都停留在表面上,希望对引用有更深理解的同行们指点更正。

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 买了火车票在订单上查不到怎么办 用支付宝付款扣款没成功怎么办 在京东买东西只收到空盒子怎么办 魅族移动数据是灰色的怎么办? 魅族手机账号密码忘记了怎么办视频 淘宝购物退货把单号写错了怎么办 天猫想退货商家不给退货地址怎么办 天天爱消除四星宠物等级已满怎么办 店不干了店里面的财神怎么办 微信显示登陆注册语言打不开怎么办 三星手机解锁以后突然不量怎么办 耐克、阿迪品牌鉴定买到假货怎么办 小米4c盒子不支持有线连接怎么办 一个手机号绑着两个小米账号怎么办 小米5s手机听筒声音小怎么办 淘宝上买手机买到翻新怎么办 小米6用久了很卡怎么办 淘宝商家发错误的退货地址怎么办 买苹果手机时查到了翻新机该怎么办 荣耀9青春版玩王者卡怎么办 红米4x手机声音突然成破音怎么办 红米pro玩王者荣耀卡怎么办 红米手机恢复出厂设置出错了怎么办 红米恢复出厂设置出错了怎么办 应聘工作上当收押金了该怎么办 红米1s密码忘了怎么办 红米1s刷机后开不了机怎么办 红米2a耗电超快怎么办 红米2a手机耗电快怎么办 红米4x触屏失灵怎么办 苹果恢复出厂设置后密码忘记怎么办 红米1s忘记密码锁屏了怎么办 红米3手机忘记解锁图案怎么办 小米5x手机录屏失败怎么办 红米4x手机wif信号不好怎么办 红米4x屏幕换了截屏不好使怎么办 红米手机2a卡慢怎么办? 红米手机连接无线网信号不好怎么办 小米4用久了很卡怎么办 红米4a关不了机怎么办 红米手机屏幕锁了忘记密码怎么办