C++参数传递的方法及指针和引用的区别
参数传递的方法:在C++中,参数的传递有两种方式,分别为传递值(pass value)、传递引用(pass reference)
传递值,创建一个新的变量,将值放到变量中,然后通过将变量的值打印进行输出。
传递引用,传递这个变量的地址值,无论这个值有多大,传递的都只会是这个值的一个地址,这样可以使得效率更高,速度更快形式为 &a(a为变量名)。
其中传递值即无论值有多大,都将它放到变量中进行传递,缺点是会造成资源的浪费,因为函数值无论大小是一直跟随着程序运行而一直存在的,传递引用和指针传递可以很好的避免这种情况。只传递函数的地址,在需要使用到函数值的时候,进行调用,这样就可以节约内存资源。
判断一个算法的好坏,其中这个算法是否最简、是否会造成资源的浪费都是重要的判断依据。
传递指针和传递引用的区别:
1.引用在创建的时候就必须初始化(赋予初值),指针可以在需要的时候进行初始化。
2.引用是比较专一的,被初始化一个对象后就不能再给别的对象作引用,而指针随时可以更改指向变量的地址.
3.存在空指针但不存在空引用
4.传递引用比指针安全,指针由于可以更改指向的变量,且即使给指针一个关键词const使它只能指向该变量的地址,也可以通过野指针来进行修改(游戏修改器的运行原理)。
!!!
在下面的例子中,x传递的是引用,传递的是变量的别名,则x在原函数的定义x = 2中x的值是可以改变的。在执行函数f的时候,x的值变为8。
而不传递引用的话,则只会将x的值复制后传递给函数,原函数x的值不会改变。
参数的返回
参数可以返回引用。
当有两个变量相加后 想传递结果出去, 有两种办法 :
一、创建一个新变量并将结果放在这个变量中返回,这种情况就不能传递引用!
二、将这个结果放在两个变量中的任意一个 这样就可以传递参数。
两者的区别是:新的变量在传递之前就被清理了,而后者在传递值之前一直存在。
本文来自博客园,作者:华岁渡春风,转载请注明原文链接:https://www.cnblogs.com/orsrrc/p/16068507.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!