传参的三种方式

1.按值传递

形参和实参各占一个独立的储存空间,形参的储存空间是函数被调用才分配的,调用时,系统为形参开辟一个临时的存储区然后将各实参传递给形参,这时形参就得到了各实参的值。

2.地址传递

形参得到实参的储存地址,使得形参指针和实参指针指向同一块地址,因此函数中对形参的造成的任何变化都能影响到实参。

3.引用传递

以引用为参数,对形参的任何操作都会对实参进行相应改变。

 

猜测:(不一定对,突然想起来就写了写自己的想法,要是有大佬指正就太感谢了,继续忙该死的二叉树去了,他妈的真累啊)

比如有一个class C{};

C* c;//这是声名c是一个C类的一个对象,但是此时c没有得到初始化。

c = new c();//这是c得到初始化(暂时不执行此句)

现在有三个函数,一个是

void max(C *c){/*...*/};//打咩,因为传参时需要c的堆内存地址。

一个是

void min(C c){/*...*/};打咩,因为传参时需要接受c的数值。

最后一个是

void middle(C &c){/*...*/};呦西,因为传参传的是c的引用,不需要c的地址或是开辟空间接收c的值。

posted @ 2022-10-31 21:06  子过杨梅  阅读(745)  评论(0编辑  收藏  举报