黑马程序员技术交流社区
标题:
请教一道题
[打印本页]
作者:
秋天-10
时间:
2015-4-28 22:15
标题:
请教一道题
写出结果。
public class Test
{
public static void leftshift(int i, int j)
{
i+=j;
}
public static void main(String args[])
{
int i = 4, j = 2;
leftshift(i, j);
System.out.println(i);
}
}
复制代码
作者:
ayl648989
时间:
2015-4-28 22:17
应该是 6吧。
作者:
米江波
时间:
2015-4-28 22:24
结果打印6 i+=j 就是把两个数相加然后赋值给第一个
作者:
依秋无泪
时间:
2015-4-28 22:28
结果是4,只有当引用类型当形参的时候传递是地址,所以操作的是同一个内存空间,基础变量传递是值,所以不会影响原来的值
作者:
陈文超
时间:
2015-4-28 22:30
4因为 里面leftshift里的i,j只是形参,不会对main里面的i,j实参造成任何影响
作者:
神话归来99
时间:
2015-4-28 22:31
/**变量的作用域实例
* 通过方法调用实现
*廖开德注释
*/
public class Test9
{
public static void leftshift(int i, int j)
{ //此处的i,j 是局部变量 只在leftshift()中有效,
//他的值的变化不会引起其他地方同名变量的变化
i+=j;
}
public static void main(String args[])
{
//此处i,j是局部变量只在main()方法中有效
int i = 4, j = 2;
//此处传递的是i,j的值,不是他的引用
leftshift(i, j);
//此处输出的是main()方法中的i的值,他没有被leifshift()方法改变
System.out.println(i);
}
}
作者:
神话归来99
时间:
2015-4-28 22:32
神话归来99 发表于 2015-4-28 22:31
/**变量的作用域实例
* 通过方法调用实现
*廖开德注释
输出结果是4
作者:
gzp123
时间:
2015-4-28 22:37
这道题的正确答案是:4
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2