[开发资料] 值传递、指针传递、引用传递

[复制链接]
1185|18
 楼主| cemaj 发表于 2022-12-22 15:00 | 显示全部楼层 |阅读模式
1、值传递:形参时实参的拷贝,改变函数形参并不影响函数外部的实参,这是最常用的一种传递方式,也是最简单的一种传递方式。只需要传递参数,返回值是return考虑的;使用值传递这种方式,调用函数不对实参进行操作,也就是说,即使形参的值发生改变,实参的值也完全不受影响。
  2、指针传递:指针传递其实是值传递的一种,它传递的是地址。值传递过程中,被调函数的形参作为被调函数的局部变量来处理,即在函数的栈中有开辟了内存空间来存放主调函数放进来实参的值,从而成为一个副本。因为指针传递的是外部参数的地址,当调用函数的形参发生改变时,自然外部实参也发生改变。
  3、引用传递:被调函数的形参虽然也作为局部变量在栈中开辟了内存空间,但在栈中放的是由主调函数放进来的实参变量的地址。被调函数对形参的任何操作都被间接寻址,即通过栈中的存放的地址访问主调函数中的中的实参变量(相当于一个人有两个名字),因此形参在任意改动都直接影响到实参。

Bowclad 发表于 2022-12-23 16:24 | 显示全部楼层
大多数人用的应该还是c语言没得引用
Undshing 发表于 2022-12-26 11:52 | 显示全部楼层
值传递比较浪费空间
Betty996 发表于 2022-12-27 15:18 | 显示全部楼层
感觉还是指针好用
Carmen7 发表于 2022-12-27 16:27 | 显示全部楼层
这几种传递方式都正常吧,看个人习惯
Estelle1999 发表于 2022-12-27 17:35 | 显示全部楼层
还有一种是全局变量的操作,属于那种传递啊?
Emily999 发表于 2022-12-27 18:27 | 显示全部楼层
我对C语言还是不太熟悉,一般都是ctrl C+V
Annie556 发表于 2022-12-27 19:52 | 显示全部楼层
还是用适合自己的吧,有些时候用指针比较方便,但是有些时候很容易溢出啥的,就比较难搞
B1lanche 发表于 2022-12-27 20:26 | 显示全部楼层
属实,值传递是比较常用的一种传递方式了
Charlotte夏 发表于 2022-12-28 07:02 | 显示全部楼层
传参嘛,一般不都是指针传么
Alina艾 发表于 2022-12-28 08:20 | 显示全部楼层
引用传递是不是就全局变量的操作啊?
天天向善 发表于 2022-12-28 09:42 | 显示全部楼层
引用传递是C++的知识吧。
芯路例程 发表于 2022-12-28 09:43 | 显示全部楼层
Undshing 发表于 2022-12-26 11:52
值传递比较浪费空间

不浪费空间吧,最多就4个字节或者8个字节。因为传递数组一类的都是传递指针。
Pretext 发表于 2022-12-28 09:44 | 显示全部楼层
Estelle1999 发表于 2022-12-27 17:35
还有一种是全局变量的操作,属于那种传递啊?

那个就和函数的实参形参没有关系了。
Pretext 发表于 2022-12-28 09:44 | 显示全部楼层
Emily999 发表于 2022-12-27 18:27
我对C语言还是不太熟悉,一般都是ctrl C+V

什么语言都可以ctrl C+V,话说不会C怎么玩单片机。
alxd 发表于 2022-12-28 10:14 | 显示全部楼层
如果再讲的细致一点就好了,这对C语言不咋好的同学,很受益的
Carina卡 发表于 2022-12-28 13:37 | 显示全部楼层
好像用值传递比较多,都是一些数据传到子函数之中这种操作
MessageRing 发表于 2023-1-3 14:24 | 显示全部楼层
传指针比较节省空间吧
豌豆爹 发表于 2023-1-4 15:38 来自手机 | 显示全部楼层
引用传递在什么场合用了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

40

主题

4083

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部