| 本帖最后由 谢铭 于 2013-8-10 00:11 编辑 
 为什么同样是函数,调用之后,返回的值会不一样呢,如下面两段代码所示:
 上面这段代码,返回的值,i=4,j=2,调用的方法中有两个式子i+=j;j=++j,两个式子并没有影响到在主函数定义的i和j.复制代码public class Test { 
        public static void leftshift(int i, int j) { 
                   i+=j;   //i=i+j
                j=++j;  //j=++j
                //System.out.println(i);
                //System.out.println(j);
        } 
        public static void main(String args[]) { 
                int i = 4, j = 2; 
                leftshift(i, j);
                System.out.println(i);  
                System.out.println(j);  
        } 
} 
而下面这段代码却是不一样,如下所示:
 这段代码输出的结果是1复制代码public class Demo { 
        public static void main(String[] args){ 
                int[] a=new int[1];                //创建整型数组a,并分配其空间大小为1
                modify(a);                        //调用方法,并将数组a传入,参与运算
                System.out.println(a[0]);        //打印数组a的0角标位上的数
        }
        public static void modify(int[] a){                //创建方法modify,有数组参与运算,没有具体的返回值
                a[0]++;                        //数组a,的0角标位上的数自增,a[0]=a[0]+1
        } 
} 
主函数中只是定义了该数组,并没有赋值,因为数组都有默认初始值,其初始值为0.
 在函数中,有a[0]++这个式子,a[0]自增后,a[0]成了1.
 想请问下,关于函数,这些是如何定义这块的,在线等解释.
 为什么两段代码,调用函数,有一个,函数的值,影响到了主函数的值,而另一个却没有?
 
 |