C++参数传递的方法及指针和引用的区别

参数传递的方法:在C++中,参数的传递有两种方式,分别为传递值(pass value)、传递引用(pass reference)

传递值,创建一个新的变量,将值放到变量中,然后通过将变量的值打印进行输出。

传递引用,传递这个变量的地址值,无论这个值有多大,传递的都只会是这个值的一个地址,这样可以使得效率更高,速度更快形式为 &a(a为变量名)。

其中传递值即无论值有多大,都将它放到变量中进行传递,缺点是会造成资源的浪费,因为函数值无论大小是一直跟随着程序运行而一直存在的,传递引用和指针传递可以很好的避免这种情况。只传递函数的地址,在需要使用到函数值的时候,进行调用,这样就可以节约内存资源。

判断一个算法的好坏,其中这个算法是否最简、是否会造成资源的浪费都是重要的判断依据。

 

传递指针和传递引用的区别:

1.引用在创建的时候就必须初始化(赋予初值),指针可以在需要的时候进行初始化。

2.引用是比较专一的,被初始化一个对象后就不能再给别的对象作引用,而指针随时可以更改指向变量的地址.

3.存在空指针但不存在空引用

4.传递引用比指针安全,指针由于可以更改指向的变量,且即使给指针一个关键词const使它只能指向该变量的地址,也可以通过野指针来进行修改(游戏修改器的运行原理)。

 

!!!

在下面的例子中,x传递的是引用,传递的是变量的别名,则x在原函数的定义x = 2中x的值是可以改变的。在执行函数f的时候,x的值变为8。

而不传递引用的话,则只会将x的值复制后传递给函数,原函数x的值不会改变。

 

 

参数的返回
参数可以返回引用。

当有两个变量相加后 想传递结果出去, 有两种办法 :

一、创建一个新变量并将结果放在这个变量中返回,这种情况就不能传递引用!

二、将这个结果放在两个变量中的任意一个 这样就可以传递参数。

两者的区别是:新的变量在传递之前就被清理了,而后者在传递值之前一直存在。

 

posted @   华岁渡春风  阅读(242)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示