精华内容
下载资源
问答
  • 声明一维数组时常见错误

    千次阅读 2019-01-28 15:07:10
    /// 声明和初始化时易出现的错误 /// </summary> /// <param name="args"></param> static void Main(string[] args) { int[] array...
    /// <summary>
            /// 声明和初始化时易出现的错误
            /// </summary>
            /// <param name="args"></param>
            static void Main(string[] args)
            {
                int[] array =new int[5]{0,1};
            }
    

    会出现这种错误信息

    原因是声明和初始化一维数组的语句是错误的,代码“int[5]”告诉编译器数组长度是5,但是只有给其中两个元素赋初始值

    声明数组

    static void Main(string[] args)
            {
                //声明数组并初始化
                int[] arry = new int[5] { 6, 1, 2, 3, 4 };
                int[] arr1 = new int[] { 0, 1, 2, 3, 4 };//省略数组长度
                int[] arr2 ={ 0, 1, 2, 3, 4 }; //省略 new 关键字
                Console.WriteLine("数组 array 的元素个数是{0}",arry.Length);
                Console.WriteLine("数组 array 的元素个数是{0}", arr1.Length);
                Console.WriteLine("数组 array 的元素个数是{0}", arr2.Length);
    

    可以通过 “数组名.Length” 的形式来获得数组的长度
    在这里插入图片描述

    展开全文
  • 【总结】一维数组、二维数组的声明和初始化 1.一维数组声明和初始化:  1.1静态初始化:数组的初始化和数组元素的赋值操作同时进行  1.2动态初始化:数组的初始化和数组元素的赋值操作分开进行    数组一旦...

    【总结】一维数组、二维数组的声明和初始化

    1.一维数组的声明和初始化:
     1.1静态初始化:数组的初始化和数组元素的赋值操作同时进行
     1.2动态初始化:数组的初始化和数组元素的赋值操作分开进行
     
              数组一旦初始化完成,其长度就确定了。

    示范代码:

    int num;//声明
    num = 10;//初始化
    int id = 1001;//声明 +初始化
    		
    int[] ids;//声明
    //1.1静态初始化:数组的初始化和数组元素的赋值操作同时进行
    ids = new int[]{1001,1002,1003,1004};
    //1.2动态初始化:数组的初始化和数组元素的赋值操作分开进行
    String[] names = new String[5];
    
    //如下也是正确的写法:
    int[] arr4 = {1,2,3,4,5};//类型推断
    

    错误的写法:

    int[] arry1 = new int[];
    int[5] arry2 = new int[5];
    int[] arry3 = new int[3]{1,2,3};
    

    2.二维数组的声明和初始化:
     2.1静态初始化:数组的初始化和数组元素的赋值操作同时进行
     2.2动态初始化:数组的初始化和数组元素的赋值操作分开进行
    对于二维数组的理解,我们可以看成是一维数组array1又作为另一个一维数组array2的元素而存在。其实,从数组底层的运行机制来看,其实没有多维数组。

    示范代码:

    //1.二维数组的声明和初始化
    int[] arr = new int[]{1,2,3};//一维数组
    //静态初始化
    int[][] arr1 = new int[][]{{1,2,3},{4,5},{6,7,8}};
    //动态初始化1
    String[][] arr2 = new String[3][2];
    //动态初始化2
    String[][] arr3 = new String[3][];
    
    //如下也是正确的写法:
    int[] arr4[] = new int[][]{{1,2,3},{4,5,9,10},{6,7,8}};
    int[] arr5[] = {{1,2,3},{4,5},{6,7,8}};
    

    错误的写法:

    int[][] arr4 = new int[4][3]{{1,2,3},{4,5},{6,7,8}};
    String[][] arr5 = new String[][2];
    String[4][3] arr2 = new String[][];
    
    展开全文
  • 一维数组实质上是一组相同类型数据的线性集合,是数组中最...声明一维数组的语法格式为: 数据类型数组名[]; //声明数组 或者 数据类型[]数组名; //声明数组 以上两种格式都可以声明一个数组,其中的数据类...

    一维数组实质上是一组相同类型数据的线性集合,是数组中最简单的一种数组。本文将重点介绍一维数组的创建、初始化和使用。

    创建一维数组

    为了在程序中使用一个数组,必须声明一个引用该数组的变量,并指明整个变量可以引用的数组类型。声明一维数组的语法格式为:

    数据类型数组名[];    //声明数组

    或者

    数据类型[]数组名;    //声明数组


    以上两种格式都可以声明一个数组,其中的数据类型既可以是基本数据类型,也可以是引用数据类型。数组名可以是任意合法的变量名。声明数组就是要告诉计算机该数组中数据的类型是什么。例如:

     
    1. int[] score; //存储学生的成绩,类型为整型
    2. double[] price; //存储商品的价格,类型为浮点型
    3. String[] name; //存储商品名称,类型为字符串型


    在声明数组时不需要规定数组的长度,例如:

     
    1. int score[10]; //这是错误的


    注意:在声明数组变量时千万不要漏写[]。

    分配空间

    声明了数组,只是得到了一个存放数组的变量,并没有为数组元素分配内存空间,不能使用。因此要为数组分配内存空间,这样数组的每一个元素才有一个空间进行存储。

    简单地说,分配空间就是要告诉计算机在内存中为它分配几个连续的位置来存储数据。在 Java 中可以使用 new 关键字来给数组分配空间。分配空间的语法格式如下:

    数组名=new 数据类型[数组长度];    //分配空间


    其中,数组长度就是数组中能存放的元素个数,显然应该为大于 0 的整数,例如:

     
    1. score=new int[10];
    2. price=new double[30];
    3. name=new String[20];


    这里的 score 是已经声明过的 int[] 类型的变量,当然也可以在声明数组时就给它分配空间,语法格式如下:

    数据类型[]数组名=new 数据类型[数组长度];

    例 1

    例如,声明并分配一个长度为 5 的 int 类型数组 arr,代码如下:

     
    1. int arr=new int[5];


    执行后 arr 数组在内存中的格式如图 1 所示。
     


    图1 一维数组的内存格式


    在图 1 中 arr 为数组名称,方括号“[]”中的值为数组的下标。数组通过下标来区分数组中不同的元素,并且下标是从 0 开始的。因此这里包含 5 个元素的 arr 数组最大下标为 4。

    注意:一旦声明了数组的大小,就不能再修改。这里的数组长度也是必需的,不能少。

    尽管数组可以存储一组基本数据类型的元素,但是数组整体属于引用数据类型。当声明一个数组变量时,其实是创建了一个类型为“数据类型[]”(如 int[]、double[], String[])的数组对象,它具有表 1 所示的方法和属性。
     

    表1 数组的方法和属性
    方法名称返回值
    clone()Object
    equals(Object obj)boolean
    getClass()Class<?>
    hashCode()int
    notify()void
    notify All()void
    toString()String
    wait()void
    wait(long timeout)void
    wait(long timeout,int nanos)void
    属性lengthint

     

    初始化一维数组

    数组可以进行初始化操作,在初始化数组的同时,可以指定数组的大小,也可以分别初始化数组中的每一个元素。在 Java 语言中,初始化数组有以下 3 种方式。

    使用 new 指定数组大小后进行初始化

    使用 new 关键字创建数组,在创建时指定数组的大小。语法如下:

    type[] array=new int[size];


    创建数组之后,元素的值并不确定,需要为每一个数组的元素进行赋值,其下标从 0 开始。

    例 2

    创建包含 5 个元素的 int 类型的数组,然后分别将元素的值设置为 1、2、3、5 和 8。代码如下:

     
    1. int[] number=new int[5];
    2. number[0]=1;
    3. number[1]=2;
    4. number[2]=3;
    5. number[3]=5;
    6. number[4]=8;


    注意:使用 new 创建数组之后,它还只是一个引用,直接将值赋给引用,初始化过程才算结束。

    使用 new 指定数组元素的值

    使用上述方式初始化数组时,只有在为元素赋值时才确定值。可以不使用上述方式,而是在初始化时就已经确定值。语法如下:

    type[] array=new type[]{值 1,值 2,值 3,值 4,• • •,值 n};

    例 3

    更改例 2 中的代码,使用 new 直接指定数组元素的值。代码如下:

     
    1. int[] number=new int[]{1, 2, 3, 5, 8};

    上述代码的效果等价于例 2 的效果。

    直接指定数组元素的值

    在上述两种方式的语法中,type 可以省略,如果已经声明数组变量,那么直接使用这两种方式进行初始化。如果不想使用上述两种方式,那么可以不使用 new 直接指定数组元素的值。语法如下:

    type[] array={值 1,值 2,值 3,值 值 n};

    例 4

    在前面例子的基础上更改代码,直接使用上述语法实现 number 数组的初始化。代码如下:

     
    1. int[] number={1,2,3,5,8};


    使用这种方式时,数组的声明和初始化操作要同步,即不能省略数组变量的类型。如下的代码就是错误的:

     
    1. int[] number;
    2. number={1,2,3,5,8};

    获取单个元素

    获取单个元素是指获取数组中的一个元素,如第一个元素或最后一个元素。获取单个元素的方法非常简单,指定元素所在数组的下标即可。语法如下:

    array[index];


    其中,array 表示数组变量,index 表示下标,下标为 0 表示获取第一个元素,下标为 array.length-1 表示获取最后一个元素。当指定的下标值超出数组的总长度时,会拋出 ArraylndexOutOfBoundsException 异常。

    例 5

    获取 number 数组中的第一个元素和最后一个元素,并将元素的值输出。代码如下:

     
    1. int[] number={1,2,3,5,8};
    2. System.out.println("获取第一个元素:"+number[0]);
    3. System.out.println("获取最后一个元素:"+number[number.length-1]);


    执行上述代码,输出结果如下所示:

    获取第一个元素:1
    获取最后一个元素:8

    例 6

    编写一个 Java 程序,使用数组存放录入的 5 件商品价格,然后使用下标访问第 3 个元素的值。

     
    1. import java.util.Scanner;
    2. public class Test06
    3. {
    4. public static void main(String[] args)
    5. {
    6. int[] prices=new int[5]; //声明数组并分配空间
    7. Scanner input=new Scanner(System.in); //接收用户从控制台输入的数据
    8. for(int i=0;i<prices.length;i++)
    9. {
    10. System.out.println("请输入第"+(i+1)+"件商品的价格:");
    11. prices[i]=input.nextInt(); //接收用户从控制台输入的数据
    12. }
    13. System.out.println("第 3 件商品的价格为:"+prices[2]);
    14. }
    15. }


    上述代码的“int[] prices=new int[5]”语句创建了需要 5 个元素空间的 prices 数组,然后结合 for 循环向数组中的每个元素赋值。

    数组的索引从 0 开始,而 for 循环中的变量 i 也从 0 开始,因此 score 数组中的元素可以使用 scored 来表示,大大简化了代码。最后使用 prices[2] 获取 prices 数组的第 3 个元素,最终运行效果如下所示。

    请输入第1件商品的价格:
    5
    请输入第2件商品的价格:
    4
    请输入第3件商品的价格:
    6
    请输入第4件商品的价格:
    4
    请输入第5件商品的价格:
    8
    第 3 件商品的价格为:6

    获取全部元素

    当数组中的元素数量不多时,要获取数组中的全部元素,可以使用下标逐个获取元素。但是,如果数组中的元素过多,再使用单个下标则显得烦琐,此时使用一种简单的方法可以获取全部元素——使用循环语句。

    下面利用 for 循环语句遍历 number 数组中的全部元素,并将元素的值输出。代码如下:

     
    1. int[] number={1,2,3,5,8};
    2. for (int i=0;i<number.length;i++)
    3. {
    4. System.out.println("第"+(i+1)+"个元素的值是:"+number[i]);
    5. }


    除了使用 for 语句,还可以使用 foreach 遍历数组中的元素,并将元素的值输出。代码如下:

     
    1. for(int val:number)
    2. {
    3. System.out.print("元素的值依次是:"+val+"\t");
    4. }
    展开全文
  • 一维数组声明与使用

    千次阅读 2018-09-04 10:33:18
    一维数组声明与使用 1、一维数组的本质就是在内存中申请一段连续区域,用于记录多个类型相同的数据。 数组名:指数组的名称,用于记录连续内存区域内在内存中的首地址,类似于容器。 数组元素:主要指存放在...

    一维数组的声明与使用


    1、一维数组的本质就是在内存中申请一段连续区域,用于记录多个类型相同的数据。

    数组名:指数组的名称,用于记录连续内存区域内在内存中的首地址,类似于容器。

    数组元素:主要指存放在数组中的数据内容。

    数组长度:主要指存放在数组中的元素个数、数组容量。通常使用  数组名.length  的方式获取。

    数组下标:主要指数组元素在数组中的编号,从 开始一直到  数组名.length-1


    2、数组的声明和使用

    (1)格式:  数据类型[ ]    数组名称     =     new    数据类型[数组的长度]

             例如:   int[ ]    arr    =    new    int[5]       申请一个长度为5,元素类型为int的数组 

    (2)注意:只有在数组声明时[ ]中的数字代表数组的长度,其他地方代表数组下标。

                        下标的范围是 0 ~ 数组名.length-1,若超过这个范围,则在运行阶段会产生数组下标越界异常。

    (3)数组的默认值:当声明一个数组但没有指定数组长度时,则采用默认初始化方式。

             对于 byte、short、char、int、long类型,默认初始值为0。

             对于float、double类型,默认值为0.0。

             对于boolean类型,默认值为false。

    (4)数组的初始化:分为两种方式:静态方式和动态方式。

             举例:静态方式:数据类型[ ]    数组名称    = {初始值1,初始值2,初始值3,初始值4};

                        动态方式:数据类型[ ]    数组名称     =     new    数据类型[数组的长度]

     

     

    如果文中有错误,希望能够指出,一同进步!

    展开全文
  • C++ 一维数组

    千次阅读 2019-12-16 20:36:05
    声明(创建)一维数组及规则 引用数组元素 数组排序 冒泡排序法 数组的基本概念 先来说一下一维数组的定义:一维数组即为下标只有一个的数组,一维数组也是最简单的数组 数组也就是一组按照顺序排列在一起且...
  • 小结了一维数组和二维数组的创建与初始化、使用、存储、指针访问和几个小点
  • Oracle存储过程 一维数组 二维数组 (范例) /* 在PL/SQL中是没有数组(Array)概念的。但是如果程序员想用Array的话,就得变通一下,用TYPE 和Table of Record来代替多维数组,一样挺好用的。 emp_type 就好象一个...
  • 一维数组 1. 一维数组的创建与初始化 数组的创建: float arr[5];//5个浮点型的数组 int arr[120];//120个整型的数组 char arr[20];//20个字符型的数组 1、其中的[]是解引用操作符,它的操作数有两个:一个数组...
  • 数组与定义 ...数组声明 包括:数组名,数据类型,[] 二、为数组分配空间 必要,否则会出现错误 三、数组各元素的赋值 注意:数组的各元素必须与声明的数据类型完全相同 四、数组的使用 ...
  • java之一维数组

    2020-11-10 20:39:15
    数组:引用数据类型,是用来存放一组相同类型的数据的复合数据类型,较常见的数组是一维数组,一维数组声明的格式定义如下: 数据类型 【】数组名称 或者 数据类型 数组名称 【】。例如定义数组 double grade[ ],...
  • 一维数组

    2019-04-01 11:30:38
    第六章 一维数组 6.1 一维数组的定义 数组的定义:数组是用来存储数据的集合,但是,通常我们会发现把数组看做一个存储具有相同类型的变量集合会更有用。一个数组变量看起来似乎是存储了一个数组,但实际上它存储的...
  • 释义 数组是在程序设计中,为了处理方便, 把具有相同类型的若干元素按无序的形式组织起来的一种形式。...一维数组声明 两种声明格式 元素类型[] 变量名称 示例:int[] intArray; 元素类型 变量名称[] 示例:int intA...
  • C语言入门系列之6.一维和二维数组

    千次阅读 2020-04-27 10:18:31
    在C语言中使用数组必须先进行定义,一维数组声明格式为类型说明符 数组名 [常量表达式];,不允许对数组的大小作动态定义;形式为数组名[下标];给数组赋值包括赋值语句赋值、初始化赋值和动态赋值3种方式。二维数组...
  • java循环语句一维数组

    千次阅读 2018-10-16 16:22:56
    1、实现二分查找算法:有序的数组 public class TestDemo1 { public static int binary(int[] array, int key) {//key为要查找的数 Arrays.sort(array);//正序排列数组 System.out.println(&amp;amp;amp;...
  • 一维数组及其应用

    2016-10-22 11:44:10
    一、一维数组1.一维数组定义形式(1) 语法 样列 说明 类型标识符 数组名[整形常量表达式]; int scoer[10]; //定义一个长度为十的数组 ①数组名的命名规则和简单变量名相同,遵循标识符的命名规则。②数组名后的...
  • 一维数组(Java)

    2019-01-29 19:28:40
    一维数组 Java 和许多高级语言都提供了一种称作数组(array)的数据结构,可以用它来存储一个元素个数固定且元素类型相同的有序集。 一维数组、二维数组和多维数组。 一旦数组被创建,它的大小是固定的。使用一个...
  • 1.2 一维数组的定义、赋值和初始化

    千次阅读 2020-09-21 14:33:38
    当数组中每个元素都只带有一个下标时,这种数组就是“一维数组”。一维数组(one-dimensional array)实质上是一组相同类型数据的线性集合...声明一维数组的语法格式为: type[] arrayName; // 数据类型[] 数组名; 或
  • 数组(Array)是在内存中连续存储的具有相同类型的组数据的集合。 数组组相同类型元素的集合。*这些元素在内存中依次连续挨着存放。 数组中,若将有限个类型相同的变量的集合命名,那么这个名称为数组名。组成...
  • Java教程当数组中每个元素都只带有一个下标时,这种数组就是“一维数组”。一维数组(one-dimensional array)实质上是一组相同类型数据的线性集合,是...声明一维数组的语法格式为: type[] arrayName; // 数据类型
  • C语言 二维数组

    千次阅读 2016-01-15 22:21:24
    - 所谓多维数组就是一个一维数组的每个元素又被声明为一 维数组,从而构成二维数组. 可以说二维数组是特殊的一维数组。 - 示例  +int a[2][3]  +可以看作由一维数组a[0]和一维数组a[1]组成,这两个一维数组都包含了...
  • 1:数组指针本质上是一个指针,而且是一个指向数组的指针(又称为行指针),在这声明一下数组指针是指向二维数组的,对于一维数组数组没有任何意义。指针数组本质是一个数组,它的目的把相同类型的指针统一放在一个...
  • 一维数组

    千次阅读 2012-04-18 23:44:30
    Foreach循环 使用foreach循环环遍历数组合元素组合时,无需获得数组合集合的长度,无须根据索引来访问数组元素和集合元素....每次循环都将数组中的个元素赋给变量,循环体就对该变量进行操作。 String[]
  • 一维数组创建的几种方法

    千次阅读 2018-04-07 22:14:10
    数组可以说是对于每种语言学习中的最基础的数据结构之,几乎是在所有项目中都会涉及到数组的使用,接下来就详细介绍一下数组声明、创建和初始化以及实例代码解析,以Java语言描述 声明 数据类型 数组名称[]...
  • 维数组

    2020-02-20 18:11:31
    如何声明一个二维数组变量?如何创建个二维数组?如何访问二维数组中的元素? 声明维数组变置并创建二维数组 下面是声明维数组的语法: 数据类型[] []数组名 : 或者 数据类型数组名[] [] ; //允许这种...
  • 在谈论指针之前,先讲一下文件包含#include命令,通常有两种形式#include&...说的简单一点就是自己定义的头文件要使用双引号的形式,在这里还要说明一点,文件包含命令可以包含任意种格式的文...
  • 第一节 一维数组 数组就是一组相同类型的变量,它们往往都是为了表示同一批对象的统一属性,如一个班级所有同学的身高、全球所有国家的人口数等。 数组可以是一维的,也可以是二维或多维的。 数组: 是一组...
  • 维数组与指针、指针数组、数组指针的用法

    万次阅读 多人点赞 2018-03-12 18:16:20
    我们知道,一个二维数组在计算机中存储时,是按照先行后列的顺序依次存储的,当把每一行看作一个整体,即视为一个大的数组元素时,这个存储的二维数组也就变成了一个一维数组了。而每个大数组元素对应二维数组的一行...
  • Java二维数组

    千次阅读 2021-02-14 11:42:42
    如果数据是线性的,则可以使用一维数组。但是,要处理多层数据,我们必须使用多维数组。Java中的二维数组是多维数组的最简单形式。 Java中的二维数组声明 以下代码段显示了Java编程语言中的二维数组声明: Data_...
  • 在初始化的时候 必须给出列数 若省略 则表示后面的值补为默认的0 也可以写成一行 就像一维数组一样: 但是不方便阅读 int i[][3] = {1,2,3,4,5,6,7,8,9}; 相当于 int i[][3]=[ {1,2,3}, {4,5,6}, {7,8,9} ]; ...
  • C语言二维数组的定义与声明

    千次阅读 2020-03-16 13:08:03
    在C语言中二维数组与一维数组有着密不可分的关系但是有有着不同的特性和用途,这二者之间有着怎样的区别和不同呢?

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 26,644
精华内容 10,657
关键字:

一维数组声明语句错误