C++中,当形参是指针,实参是什么

如题所述

你这第一个和第二个有什么不一样的么,就是把temp换成了p。
第一个和第二个都不会有变化,第三个会交换。
要理解指针和指针变量的含义,我们平时说的指针,一般指的就是指针变量。指针变量也是变量,它的值也会变化。指针变量保存的是一个内存地址。
函数调用的过程中,先要把实参复制给形参,如果参数是指针类型,那么就是把指针变量复制了过去,所以实参和形参是两个不同的指针变量,只不过是保存的内存地址是一样的。可以拿int类型来类比。相当于:int
a,
b;
a
=
100;
b
=
a;
这里a和b是两个不同的变量,同样实参的指针变量和形参的指针变量也是两个不同的变量,修改a并不会影响b。所以第二个里面p=p1;
p1=p2;
p2=p1;修改的是形参的指针变量,执行完之后,实参的指针变量并没有改变指向的内容。而第三个里面就不一样了,它修改的不是指针,而是指向的内存,实参和形参指向的内存是同样的,所以实参指针变量指向的内容被修改了。
所以,理解了指针的原理和函数调用的原理就能明白这个问题了,不能简单地认为只要传递指针就能改变实参。
温馨提示:内容为网友见解,仅供参考
第1个回答  2019-09-05
形参是指针的,实参是数组,变量的地址,指针(可以是子类的指针)
实参是指针的,形蚕是引用,数组,指针(可以是父类的指针)
相似回答
大家正在搜