C++中,哪些是按值传递,哪些是按地址传递?
答案:2 悬赏:50 手机版
解决时间 2021-04-08 23:55
- 提问者网友:爱唱彩虹
- 2021-04-08 02:01
C++中,哪些是按值传递,哪些是按地址传递?
最佳答案
- 五星知识达人网友:不如潦草
- 2021-04-08 03:17
从形式上来说
如果是参数定义的类型 本身不是指针类型,那么一定是传值调用
当定义的参数类型是指针类型 那基本可以认为是传地址调用了
但是 实际上是不是能做到将值传回主调函数,那还要看函数里面怎么操作
比如 参数A * p
如果函数里面 是对p赋值,那就没法传回主调函数。 如果是对*p 赋值,那就可以将值传回主函数。
如果是参数定义的类型 本身不是指针类型,那么一定是传值调用
当定义的参数类型是指针类型 那基本可以认为是传地址调用了
但是 实际上是不是能做到将值传回主调函数,那还要看函数里面怎么操作
比如 参数A * p
如果函数里面 是对p赋值,那就没法传回主调函数。 如果是对*p 赋值,那就可以将值传回主函数。
全部回答
- 1楼网友:独钓一江月
- 2021-04-08 03:32
其实c++中真正是没有地址传递的,所谓的地址传递实质是地址不变,而改变了地址里存储的内容,只有在数组或指针作为参数传递的时候才算作是地址传递,也就是我们看到地址里的元素最后返回时被修改了。按值传递就是传递参数给函数,但返回到调用函数以后,实参对应的值并没发生变化。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯