精华内容
下载资源
问答
  • 一维数组声明赢指出一下三点: 存储在每个元素的值的类型,如,int,float,可以是复合类型 数组名 数组中的元素数,数组的元素数必须用值大于等于1的常量表达式定义; 注意: 数组定义中的类型不能是引用,即没有...

    数组是一种数据格式,能够存储多个同类型的值,一位数组可以用来实现线性表的顺序存储,哈希表等,二维数组可以用来保存图的邻接矩阵等。
    一维数组

    一维数组的声明

    一维数组声明赢指出一下三点:

    1. 存储在每个元素的值的类型,如,int,float,可以是复合类型
    2. 数组名
    3. 数组中的元素数,数组的元素数必须用值大于等于1的常量表达式定义;

    注意:

    数组定义中的类型不能是引用,即没有引用数组,这是因为引用是不能赋值的,而数组中的元素必须可以被赋值

    定义数组a的引用:

    int a[5] = {1, 2, 3, 4,5};
    int (&p)[5] = a;		//p是a的引用
    

    一维数组的初始化

    在定义数组时,为其元素提供一组用逗号分隔的初值,这些初值用花括号{}括起来。
    初始化分为5种情况:

    1. 不初始化
    2. 全初始化
    3. 部分初始化
    4. 满初始化
    5. 不指定大小初始化

    下面是实例:

    int array_one[5];	//不初始化
    int array_two[5] = {1, 2, 3, 4, 5};  //全初始化
    int array_three[5] = {1, 2,};	// 部分初始化,其他默认补0
    int array_four[5] = {1, 2, 3, 4, 5, 6, 7};  //满初始化,c语言不进行越界检查,不建议这样使用
    int array_four[] = {1, 2, 3, 4, 5};	//不指定大小初始化
    

    一维数组的遍历

    数组是通过下标来遍历的,下标从0开始

    #include <stdio.h>
    int main()
    {
    	int array[5] = {2, 4, 6, 8,10};
    	for(int i=0; i<5; i++)
    	{
    		printf("%d ", array[i]);
    	}
    	printf("\n");
    	return 0;
    }
    

    输出结果:

    2 4 6 8 10

    一维数组动态声明

    当数组的大小未知时候,需要动态声明一维数组,声明格式如下:
    
    int a = new int[n];
    

    数据使用完毕,使用:

    delete []a;
    

    来释放内存空间

    二维数组的声明与初始化

    二位数组是最常用的高维数组,一维数组可以看成是一行数据,二位数组像是一个表格,有行和列。
    二维数组
    二维数组初始化分成两种:

    1. 按行初始化
    2. 顺序初始化
    // 行初始化
    int ia[3][4] = {
    	{0, 1, 2, 3},
    	{4, 5, 6, 7},
    	{8, 9, 10, 11},
    };
    
    //顺序初始化
    int ib[3][4] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11};
    

    行初始化可以省略某些数字,其他填充0

    int ia[3][4] = {
    	{0, 1},
    	{4, 5, 6},
    	{8},
    };
    

    等价于

    int ia[3][4] = {
    	{0, 1, 0, 0},
    	{4, 5, 6, 0},
    	{8, 0, 0, 0},
    };
    

    在C++中规定,声明和初始化一个二维数组是,如果对二位数组的所有元素都赋值,第一维可以省略,如

    int array[][3] = {1, 2, 3, 4, 5, 6};
    

    相当于:

    int array[2][3] = {1, 2, 3, 4, 5, 6};
    

    行优先存储和列优先存储

    本质上,所有的数组在内存中都是一位线性的,不同语言采用的存储方式不同,有的采用行优先存储,有的采用列优先存储
    行优先存储指在内存中,先将二维数组的第一行按顺序存储,接着第二行,第三行…
    列优先存储指在内存中,先将二维数组的第一列按顺序存储,接着第二列,第三列…
    在C/C++中,二维数组是按行优先顺序存储的

    二维数组的动态声明

    int **a = new int* [m];
    for (int i = 0; i<m; i++)
    {
    	a[i] = new int [n];
    }
    

    相当于产生了一个二维数组a[m][n]。

    使用后,用:

    for(int i=0; i<m; ++i)
    {
    	delete []a[i];
    }
    delete[] a;
    

    来释放空间

    欢迎关注我的微信公众号:
    QR-code

    展开全文
  • 一维数组声明、创建、初始化

    千次阅读 2017-03-26 18:38:34
    数组的定义 数组的定义:相同数据类型的有序集合。其中的每个数据称为数组的元素,每个元素可以通过下标来访问【下标从0开始】。数组也是对象 需要注意:  1、数组的长度是确定的,数组一旦被创建,其...

    一、数组的定义

    数组的定义:相同数据类型的有序集合。其中的每一个数据称为一个数组的元素,每个元素可以通过下标来访问【下标从0开始】。数组也是对象

    需要注意:

                1、数组的长度是确定的,数组一旦被创建,其大小就不可改变

                2、数组中的元素可以是任意数据类型,包括基本类型和引用类型。【但是数据类型必须相同】

                3、数组本身就是对象,数组中的每个元素相当于该对象的成员变量

                4、数组对象存在堆中

                5、只有在实例化数组对象时,JVM才会分配空间,这时才与长度有关。

                6、声明时不能指定数组元素的个数.例如:int a [5];   //错误

                7、构造一个数组必须指定长度。

     

    二、数组的声明、创建、初始化

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    //1、数组的声明
    int [] a;
    int [] b;
    //2、数组的创建:直接new
    a = new int [ 3 ]; //此处new int[3]必须指定长度,假如new int[]这样写会编译不过去
     
    //3、数组的初始化:3种方式
    //3.1、默认初始化:数组是引用类型,它的元素相当于类的成员变量,因此数组分配空间后,每个元素也被按照成员变量的规则被隐士初始化
    //数组的元素相当于对象的成员变量,默认值跟成员变量的初始化规则一样。比如数字:0,布尔:false,char:\u0000 ,引用类型:null
    int [] arr = new int [ 4 ]; //1、直接这样new的话数组已经默认初始化了,
    //3.2、静态初始化:在定义数字的同时就为数组元素分配空间并赋值
    int [] arr2 = new int [] { 1 , 2 , 3 , 4 };
    int [] arr3 =  { 1 , 2 , 3 , 4 };
     
    //3.3、动态初始化:数组定义与为数组分配空间和赋值的操作分开进行
    //静态初始化 完整写法
    int [] arr4 = new int [] { 1 , 2 , 3 , 4 , 5 , 6 };
    int [] arr5 = null ;
    arr4 = new int []{ 1 , 2 , 3 };
     
    //简写 推荐 必须 声明与赋值同时进行
    int [] arr6 = { 1 , 2 , 34 , 6 };
    int [] arr7 = null ;
    //arr7 ={1,2,3,4}; //错误:简写不能与声明分开
     
    //int[] arr8 = new int[5] {1,2,3,4,5,6};//错误:指定了长度
     
    int [] arr9 = null ;
    arr9 = new int [ 6 ];
    arr[ 9 ] = 1 ;
    //循环动态初始化
    int [] arr10 = new int [ 3 ];
    for ( int i= 0 ;i<arr10.length; i++ ) {
         arr10[i] = i;
    }

     

    展开全文
  • 一维数组、二维数组声明与初始化

    千次阅读 2018-12-11 08:17:25
    一维数组 声明 type var [ ]; 或 type [ ] var; //例 int age [ ]; 或 int [ ] age; 注意:java中声明时不能指定其长度 对象创建 数组名 = new 数组元素的类型[数组元素的个数] //例 int age [ ]; ...

    一维数组

    声明

    type var[];  或 type[] var;
    
    //例
    int age[]; 或 int[] age;
    

    注意:java中声明时不能指定其长度

    对象创建

    数组名 = new 数组元素的类型[数组元素的个数]
    
    //例
    int age[];
    age = new age[7];
    

    初始化

    动态初始化

    数组定义与为数组元素分配空间和赋值的操作分开进行

    public class Test {
    	public static void main(String args[]) {
    		int a [];
    		a = new int[3];
    		a[0] = 3;
    		a[1] = 9;
    		a[2] = 7;
    	}
    }
    
    public class Test {
    	public static void main(String args []) {
    		Date days[];
    		days = new Date[3];
    		days[0] = new Date(1,8,2018);
    		days[1] = new Date(2,8,2018);
    		days[2] = new DateJ(3,8,2018);
    	}
    }
    

    静态初始化

    在定义数组的同时并未数组元素分配空间并赋值

    public class Test {
    	public static void main(String args []) {
    		int age[] = { 11,22,33};
    	}
    }
    

    二维数组

    可以看成是数组的数组

    初始化

    动态初始化

    int a[][] = new int[3][];
    a[0] = new int[2];
    a[1] = new int[3];
    a[2] = new int[4];
    int b[3][2] ={{1,2},{2,3},{3,4}};//非法
    

    静态初始化

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

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

    创建一维数组

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

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

    或者

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


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

     
    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. }
    展开全文
  • 一维数组和二维数组的声明和它们作为函数参数的写法 前几天自己做题时遇见了数组作为函数参数和使用n个数字参与操作的题,申请大小为n的数组,n由用户定义,我自己写下自己的收获 一维数组和二维数组的声明 ...
  • 常用的就是一维数组、二维数组。 一维数组 数组定义:数据就是相同数据元素的集合。 数组是一种引用数据类型。不属于基本数据类型。 (1) 如何定义(声明)一维数组声明格式:数据类型[] 数组名称; (2) ...
  • 一维数组: 声明:int arr[];//这时并不占内存, 创建数组 arr=new int[10]; 赋值:arr[0]=23; arr[1]=34; 数组的开始下标为0,最大下标为长度减一 创建时赋值:int arr[]=newint[]{32,14,87,95}; Int arr[]={45,58...
  • 一维数组声明与使用

    千次阅读 2018-09-04 10:33:18
    一维数组声明与使用 1、一维数组的本质就是在内存中申请一段连续区域,用于记录多个类型相同的数据。 数组名:指数组的名称,用于记录连续内存区域内在内存中的首地址,类似于容器。 数组元素:主要指存放在...
  • ** 如题:C++中怎么将一维数组输出为二维数组,比如一维数组有(1.2.3.4…100),输出为5行20列的二维...//声明一维数组 for(int i=0;i&amp;amp;lt;100;i++) { iArr[i]=i+1;//循环遍历,给一维数组赋值 }...
  • Java数组 Java 语言中提供的数组是用来存储固定大小的同类型元素。 数组本身即为变量,长度...一维数组 声明数组变量语法: 数据类型 [ ] 数组名字;//首选方法 或者 数据类型 数组名字 [ ];//效果相同,但不是首选
  • 一维数组转化为二维数组 使用场景举例:接口返回一个数组对象,展示时每行固定显示n个,则可将返回的数组转成二维数组[[...n], [...n]...]的形式循环展示。 分析:我们将一维数组,截取设定的长度,放入的一个新...
  • 【C语言】一维数组和二维数组

    千次阅读 2017-07-10 09:43:54
    一维数组及二维数组
  • Java二维数组声明

    2020-06-27 16:10:10
    维数组声明 java中使用 [][] 来定义二维数组 定义数组时也可同时初始化 下面是一些例子 float[][] matrix; //定义个float类型的2维数组 matrix=new float[5][5]; //为它分配5行5列的空间大小 matrix[0][0]=1.1f;...
  • 为了方便组织各种信息,计算机常将信息以表的形式进行组织,然后再以行和列的...在 Java 中二维数组被看作数组的数组,即二维数组为一个特殊的一维数组,其每个元素又是一个一维数组。Java 并不直接支持二维数组,...
  • 一维数组:以线性方式存储固定数目的数组元素,它只需要1个索引值即可标识任意1个数组元素 1.格式:数组类型 [ ] 数组名称; [ ] 指定数组的秩(维度),秩指定数组的大小。 2.数据类型可以为任意数据类型 3....
  • C++ 一维数组

    千次阅读 2019-12-16 20:36:05
    声明(创建)一维数组及规则 引用数组元素 数组排序 冒泡排序法 数组的基本概念 先来说一下一维数组的定义:一维数组即为下标只有一个的数组,一维数组也是最简单的数组 数组也就是一组按照顺序排列在一起且...
  • 小结了一维数组和二维数组的创建与初始化、使用、存储、指针访问和几个小点
  • 目录1 array_reduce函数法2 array_walk_recursive函数法3 array_map函数法假设有下面个二维数组:$user = array( '0' =&gt; array('id' =&gt; 100, 'username' =&gt; 'a1'), '1' =&gt; array...
  • Java数组介绍(一维数组和二维数组)

    千次阅读 多人点赞 2018-06-08 16:00:55
    Java数组介绍(一维数组和二维数组)1. 概述· 数组是存储多个变量的容器。· 存储的多个变量必须是同一种数据类型。· 数组既可以存储基本数据类型,也可以存储引用数据类型。2. 数组定义的格式· 格式1:数据...
  • (4)数组分为:一维数组、二维数组、三维数组、多维数组。 (5)数组中存储的元素类型是统一的。 (6)数组长度不可改变,数组一旦创建,长度是不可改变的,固定的。 数组优点:查找效率高。因为数组中的存储...
  • 数组一、一维数组1. 一维数组概念及定义格式2. 一维数组的初始化1)动态初始化2)静态初始化3. Java中内存分配及堆栈的区别4. 数组操作中常见问题5. 一维数组内存图解6. 一维数组练习二、二维数组1. 二维数组概述及...
  • Java:二维数组给一维数组赋值的情况

    千次阅读 2020-06-06 19:58:59
    先介绍一下数组的赋值吧。...1.二维数组的声明、分配内存格式和一维数组的差不多,接下来我就直接展示在声明数组的同时分配内存格式: 数据类型 数组名 [][] = new 数据类型[5][5] 数据类型 [ ][ ] 数组名 = new 数
  • 后面的整个内容将围绕着一维数组展开,并且在学习一维数组之后会介绍一些一维数组的操作和使用。 表达式使用 我们在遇到的表达式里面通常包括: 关系表达式: 赋值表达式:= ,+= , -=, ×=, /=...
  • 目录 1 array_reduce函数法 2array_walk_recursive函数法 ...假设有下面个二维数组: $user = array( '0' => array('id' => 100, 'username' => 'a1'), '1' => array('id' => 101, 'username...
  • Oracle存储过程 一维数组 二维数组 (范例) /* 在PL/SQL中是没有数组(Array)概念的。但是如果程序员想用Array的话,就得变通一下,用TYPE 和Table of Record来代替多维数组,一样挺好用的。 emp_type 就好象一个...
  • c# 二维数组元素类型不同In the below example, we are declaring an integer array (two dimensional) with following styles: 在下面的示例中,我们声明具有以下样式的整数数组(二维) : 1) Two dimensional ...
  • 数组: 初始化:int[] arr = new int[5] = {1,2,3,4,5}; using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace wm110_5 { class Program { static void
  • C与JAVA在二维数组声明省略行列的问题

    千次阅读 多人点赞 2019-12-07 16:04:17
    我在学习过程遇到了个C语言二维数组声明省略行列的问题,因为学习了JAVA所以做题时纠结很久,因为记得JAVA二维数组每行的元素个数可以不同,所以认为必须声明行数可以省略列数,然而在C语言中是错误的。...
  • Shell一维数组和二维数组

    千次阅读 2018-04-21 11:48:08
    一维数组Shell下定义一维数组的形式是A=(element1 element2 element3 .... element4),然后依次按照A[0] 、A[1]…A[n]来分别读取数组里的内容。例如:array_name=(value0 value1 value2 value3)或者array_name=...
  • 1.解析一维数组的创建和初始化 2.一维数组的使用 3.一维数组的存储 4.一维数组的指针访问 5.解析二维数组的创建和初始化 6.二维数组的使用 7.二维数组的存储 8.二维数组的指针访问

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 95,053
精华内容 38,021
关键字:

一维数组的声明