论integer是地址传递还是值传递
答案:2 悬赏:30
解决时间 2021-03-01 05:41
- 提问者网友:烟刺痛了眼
- 2021-02-28 07:12
论integer是地址传递还是值传递
最佳答案
- 二级知识专家网友:一池湖水
- 2021-02-28 08:35
main 跟 test 里面的i 都是局部变量。作用域只在方法里面。
Integer 类没有方法改变自身的值。。所以main方法的i指向的值是0 。。而且传递到test方法后,test的i也是指向0..但是最后句 i=new Integer(value); 出现了一个新对象,test的i变成指向了1.而main的i还是指向 0。。如果从内存方面分析会比较容易理解!!!
Integer 类没有方法改变自身的值。。所以main方法的i指向的值是0 。。而且传递到test方法后,test的i也是指向0..但是最后句 i=new Integer(value); 出现了一个新对象,test的i变成指向了1.而main的i还是指向 0。。如果从内存方面分析会比较容易理解!!!
全部回答
- 1楼网友:疯山鬼
- 2021-02-28 08:46
对于s1过程,两个参数的传递是byval,也就是按值传递,调用时会将变量的值作为参数,而本身不影响变量的值。所以调用完成后,a,b两个变量的值不变。
对于s2过程,没有使用传递变量的标记,则vb默认是按引用传递(同于使用byref标记),调用时,会将变量的地址作为参数传递,也就是说传递的是一个指向变量值的指针。在s2中操作了变量的值,也就影响了原始的变量的值。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯