c++中的按值传递和地址传递的区别?细致点儿的~!
答案:3 悬赏:0
解决时间 2021-01-22 01:58
- 提问者网友:喧嚣尘世
- 2021-01-21 08:27
c++中的按值传递和地址传递的区别?细致点儿的~!
最佳答案
- 二级知识专家网友:西岸风
- 2021-01-21 09:13
值传递:
形参是实参的拷贝,改变形参的值并不会影响外部实参的值。从被调用函数的角度来说,值传递是单向的(实参->形参),参数的值只能传入,
不能传出。当函数内部需要修改参数,并且不希望这个改变影响调用者时,采用值传递。
指针(地址)传递:
形参为指向实参地址的指针,当对形参的指向操作时,就相当于对实参本身进行的操作
形参是实参的拷贝,改变形参的值并不会影响外部实参的值。从被调用函数的角度来说,值传递是单向的(实参->形参),参数的值只能传入,
不能传出。当函数内部需要修改参数,并且不希望这个改变影响调用者时,采用值传递。
指针(地址)传递:
形参为指向实参地址的指针,当对形参的指向操作时,就相当于对实参本身进行的操作
全部回答
- 1楼网友:往事埋风中
- 2021-01-21 10:49
按值传递更容易理解嘛.
参数为非指针类型,调用的时候不用地址传递,子程序中更改的是局部,而不是调用时的参数.
若要细细讲的话,按地址传递都还有需要说的.
请理解下"指针"与"指针所指向的对象"的差别.
"指针"又有地址么?等
参数为非指针类型,调用的时候不用地址传递,子程序中更改的是局部,而不是调用时的参数.
若要细细讲的话,按地址传递都还有需要说的.
请理解下"指针"与"指针所指向的对象"的差别.
"指针"又有地址么?等
- 2楼网友:你哪知我潦倒为你
- 2021-01-21 09:24
按值传递其实就是把变量复制了一遍,因为是复制品,所以他不会改变样品的值
比如有一个函数 fun( int x);然后去调用
int a=8;
fun(a);当运行到这里的时候 就创建了一个变量 x
然后 a 的的值就复制给 x 了
因为他们存放的地址不一样,所以函数里面 x 变化了
a 的值是不会变的
不知道你能不能理解
比如有一个函数 fun( int x);然后去调用
int a=8;
fun(a);当运行到这里的时候 就创建了一个变量 x
然后 a 的的值就复制给 x 了
因为他们存放的地址不一样,所以函数里面 x 变化了
a 的值是不会变的
不知道你能不能理解
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯