码迷,mamicode.com
首页 > 编程语言 > 详细

数组注意事项

时间:2018-01-30 23:12:01      阅读:361      评论:0      收藏:0      [点我收藏+]

标签:dog   编译   错误   括号   变量   class   程序   成功   big   

  1. 声明数组时候不能带长度 例如:

    Dog myDogs [7];//错误

  2. 但是可以在声明的时候把方括号放在左右两边 例如:

    int [] mySocres [];虽然这样的声明让人不爽,但是如果这样声明对于语法是完全正确的。可以编译通过的。

 

  • 当把一个数组赋给前面声明的数组用时候,正在赋值的数组必须与被赋值的引用具有相同的维数。例如:

  byte[][] big = new byte[7][7];

  byte[][] b = new byte[2][1];

  byte b3 = 5;

  byte b2[][][][] = new byte[2][3][1][4];

 

  b2[0][1] = b;

  b[0][0] = b3;

  b2[1][1][0] = b[0][0]

  b2[1][2][0] = b

  b2[0][1][0][0] = b[0][0]

  b2[0][1] = big

   则b2[0][1] = b;是正确的。b[0][0] = b3;是正确的。b2[1][1][0] = b[0][0];这样是把一个二维数组的第0行1列的值赋值给了一个需要一个一维数组做第三维元素的数组,所以这样的赋值是不合法的。b2[1][2][0] = b;这里需要的一个一维数组,而赋值给了一个二维数组,所以这样是不合法的。b2[0][1][0][0] = b[0][0],四维数组的第四维度,即一个存储的一个值,而b[0][0]也是代表一个值,所以赋值是成功的。b2[0][1] = big;这里b2[0][1]需要一个二维数组,所以big是一个二维数组,把他赋值给他是合法的。

 

  数组元素总是被赋予默认值 ,也就是说如果数组对象一旦生成,则必然数组元素会被初始化。因为数组元素即数组对象是在堆内存中,数组变量即引用是存放在栈内存中。

  数组初始化的两种方法:

    静态初始化:程序员在初始化数组时为数组每个元素赋值

    动态初始化:数组初始化时,程序员指指定数组的长度,由系统为每个元素赋初始值

例如:

  int [] a = {23,22,12,23,21}; //静态初始化这样的语句就会产生出一个新的数组对象,

  int [] array;//只声明了数组,而没有数组对象

  int array[] = new int[5]; //动态初始化 被赋予默认值

  值得强调的是,数组是一种引用的数据类型,数组变量并不是数组本身,而是指向堆内存中存放的数组对象,因此可以改变一个数组变量所引用的数组,

 

 

 

数组注意事项

标签:dog   编译   错误   括号   变量   class   程序   成功   big   

原文地址:https://www.cnblogs.com/weixingyuan/p/8387388.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!