A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 黄诗宾 高级黑马   /  2013-3-21 20:39  /  1439 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 黄诗宾 于 2013-3-21 21:43 编辑

public class Demo
{
        public static void main(String[] args)
        {
                int[] a=new int[1];
                modify(a);
                System.out.println(a[0]);
        }
        public static void modify(int[] a)
        {
                a[0]++;
        }
}

函数括号里的 int[]a 就是主函数里的int[]a么?
最后打印出的值为1,哪位大大讲解下,谢谢!

点评

如果你的问题已经得到解决。请及时将主题改为[已解决],如果还有问题请继续追问,谢谢  发表于 2013-3-21 21:34

评分

参与人数 1技术分 +1 收起 理由
贾文泽 + 1

查看全部评分

6 个回复

倒序浏览
public class Demo
{
        public static void main(String[] args)
        {
                int[] a=new int[1]; //定义一个数组,长度为1,而且数组中元素默认为0
                modify(a);
                System.out.println(a[0]);
        }
        public static void modify(int[] a)
        {
                a[0]++;
        }
}

定义一个int类型数组,长度为1,数组元素默认为0.所以在调用 modify方法后,元素的值自加1,即数组中元素值变为1,打印结果为1

评分

参与人数 1技术分 +1 收起 理由
贾文泽 + 1

查看全部评分

回复 使用道具 举报
public class Demo
{
        public static void main(String[] args)
        {
                int[] a=new int[1];// new了一个a数组,长度为1,初试值a[0]=0;
                modify(a); //调用modify函数,a[0]++值是1;
                System.out.println(a[0]);//输出数组零角标元素值,就是1;
        }
        public static void modify(int[] a)
        {
                a[0]++;
        }
}


评分

参与人数 1技术分 +1 收起 理由
贾文泽 + 1

查看全部评分

回复 使用道具 举报
  1. public class Demo
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 int[] a=new int[1];//自定义一个长度为1的int型数组a       
  6.                 modify(a);//将a的地址值传给modify函数,这里的a非函数里的a,a[0]原来为0,调用函数之后a[0]为1
  7.                 System.out.println(a[0]);//打印a[0]的数值,打印的数值就是1啦
  8.         }
  9.         public static void modify(int[] a)
  10.         {
  11.                 a[0]++;
  12.         }
  13. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
贾文泽 + 1

查看全部评分

回复 使用道具 举报
int [] a = new int[1]; //定义一个长度为1的数组a[x];
且系统默认a[0]=0;
a[0]++;
后a[0]=1;
所以最后打印a[0]=1
回复 使用道具 举报

public class Demo
{
        public static void main(String[] args)
        {
                int[] a=new int[1];            //这里面的a是数组的名称a,是标识符
                modify(a);
                System.out.println(a[0]);
        }
        public static void modify(int[] a)              //这里的a和主函数里面的a没有关系,这里面a只是一个参数,
        {
                a[0]++;
        }
}

你这段程序,因为数组中只有一个元素,且这个元素没有初始值,那么默认的初始值就是0,也就是说a[0]的默认初始值是0,然 modify[]函数中对a[0]++也就是说a[0]自加了1那么a[0]就变成了1,因此打印1

评分

参与人数 1技术分 +1 收起 理由
贾文泽 + 1

查看全部评分

回复 使用道具 举报
lxww 中级黑马 2013-3-21 21:24:33
7#
int[] arr=new int[1];数组长度为2.因为你数组中没赋值,所以取默认值0,int类型的数组中的元素默认值为0.

你在modify方法中a[0]++,所以最后输入结果为1.
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马