C++传地址和传地址值怎样区分
答案:2 悬赏:50
解决时间 2021-04-28 00:40
- 提问者网友:一人心
- 2021-04-27 08:32
C++传地址和传地址值怎样区分
最佳答案
- 二级知识专家网友:兮沫♡晨曦
- 2021-04-27 08:42
在C++中,有传值和传引用两种方式。
传值的时候,传入函数内部的是参数的一份拷贝,在函数内部使用的都是拷贝,所以在函数内部无论怎样改变它,一旦离开函数,参数没有任何变化。
传变量,传对象,传指针皆属于传值方式。比如:
some_fun(int a)
some_fun(SOMECLASS b)
some_fun(int* c)
皆为传值方式。
传引用,传入函数内部的是参数本身,所以在函数内部改变它,在离开函数后,这种变化会反应在参数上。比如:
some_fun(int& a)
some_fun(SOMECLASS& b)
some_fun(int*& c)
传值的时候,传入函数内部的是参数的一份拷贝,在函数内部使用的都是拷贝,所以在函数内部无论怎样改变它,一旦离开函数,参数没有任何变化。
传变量,传对象,传指针皆属于传值方式。比如:
some_fun(int a)
some_fun(SOMECLASS b)
some_fun(int* c)
皆为传值方式。
传引用,传入函数内部的是参数本身,所以在函数内部改变它,在离开函数后,这种变化会反应在参数上。比如:
some_fun(int& a)
some_fun(SOMECLASS& b)
some_fun(int*& c)
全部回答
- 1楼网友:两不相欠
- 2021-04-27 09:48
你好,
函数传值,只是起到一个“传”的作用,在调用函数中修改,只会在调用函数的这个作用域中起作用。
函数传地址,一般通过传指针或传引用。它在调用函数的时候,如果改变了传入地址中的数据,即地址所指向的地址空间。
而通过传值,相当于在内存中拷贝了一份,在调用函数中,只改变了拷贝值所在的地址空间的数据,而不是改变所传入值的地址空间的数据
a1和a2都是运行了,只是a2运行的并没有改变传入的值!
如果需要还不懂,可以再来问我!
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯