形式参数里如果不加&这个,比如void abc(int p),那这个p存放p的地址,不是和形式参数void abc(int &p)里面的&p一样吗,p的地址是&p,然后&p里面存放了个p,为啥在子函数里,一个不可以经过子函数在主函数输出,一个可以经过子函数在主函数输出…就这个地方我有疑问,子函数计算的时候,int t; t=p,形式参数不加&是把&p这个地址里面的p存放到&t这个地址里,加&,不也是往&t里面存放一个&p里的p这个数据吗?
void f(int p) { // 这里f()参数p是传值的
p = 1; // 对p的修改只是修改局部变量p,不会影响外部变量
}
void f(int *p) { // 这里f()参数p是指针,即从外部传入的一个变量的地址
*p = 1; // 因此,对这个指针所指内容的修改,就是对传入那个变量的内容修改
}
void f(int &p) { // 这里f()参数p是一个引用,在调用f()时这个引用就绑定了一个变量
p = 1; // 对这个引用的修改,就相当于对那个被绑定的变量修改
}
&在c++中有种用法叫引用,类似指针,很方便
具体看这篇文章,说的很懂哦!
https://mp.weixin.qq.com/s?src=11×tamp=1640979203&ver=3530&signature=yqQrgmmAHuR6oYAkSka*uwr4SIVZUEYnR-PKsMsGcs-Qau6aqkm2pKTmJgtyh7yIitEwdgkJhA4ncMZf4ZUzIek9lvVaF6FLyzYKGOgj-CQIYF0U-VcQsI9P6sOENp04&new=1
有帮助的话采纳一下哦!谢谢!