黑马程序员技术交流社区

标题: 结果是几啊 [打印本页]

作者: 杨立考    时间: 2012-9-25 21:36
标题: 结果是几啊
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);
        }
}


作者: 王玉岩    时间: 2012-9-25 21:39
4
有什么问题么
作者: 杨卫腾    时间: 2012-9-25 21:40
这个输出的当然是 4, 虽然你在那个函数中进行了修改但是哪个是局部变量,
不是成员变量i d的改变。

要是你学过C语言的话,结果是这样的。
作者: 魏亮    时间: 2012-9-25 22:41
这个一开始我也有过疑问,我是这样想的。。
leftshift 函数会在栈内存中开辟空间计算,可已经完后他没有返回计算结果给主函数,
随着这个函数完,函数也消失了,
而主函数却没有得到计算结果,所以i 的结果还是4




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2