精华内容
下载资源
问答
  • 1、看代码 using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication1 ... static void Main(string[] args) ... //一维数组定义与初始化

    1、看代码

    using System;  
    using System.Collections.Generic;  
    using System.Linq;  
    using System.Text;  
      
    namespace ConsoleApplication1  
    {  
        class Program  
        {  
            static void Main(string[] args)  
            {  
                //一维数组定义与初始化  
                int[] one1 = new int[] {3,2,1 };//第一种方式  
                int[] one2 = { 3, 2, 1 };      //第二种方式  
                
               
                //二维数组定义与初始化  
      
                //不规则二维数组  
                int[][] array = new int[2][];  
                array[0] = new int[3];  
                array[0][1] = 11;  
                array[0][2] = 12;  
                array[1] = new int[] { 1, 2, 3, 4,5 };  
    
    			//要注意 
               int[][] array = new int[2][];  
    		   这种声明方式,不能这样写,否则会报错.
    		   int[][] array = new int[2][3];  
    	
    		  //不规则二维数组,先定义一维:2
     		  int[][] a = new int[2][];
    		  //再定义第二维: 3 
    		  a[0] = new int[3]{1,2,3};
    		  a[1] = new int[3]{4,5,6};
      
             //或int[][] array = new int[2][] { new int[] {0,11,12 }, new int[] {1,2,3,4,5 }};  
                
                Console.WriteLine( "不规则二维数组:  ");  
                for (int i = 0; i < array.Length; i++)  // 不规则数组地遍历,不规则数组的length是数组的行数,array.Length = 2
                {  
                    foreach (int j in array[i])  
                    {  
                        Console.Write(j+"   ");  
                    }  
                    Console.WriteLine();  
                }  
      
                //固定长度的矩阵数组  
                int[,] arrray1=new int[2,5]{{9,9,9,9,0},{0,0,9,0,0}};  // 注意每一行用{}括起来
                Console.WriteLine("规则二维数组输出方法一:  ");  
                for (int i = 0; i < 2; i++)                        //输出方法一  
                {  
                    for (int j = 0; j < 5; j++)  
                    {  
                        Console.Write(arrray1[i,j] + "   ");  
                    }  
                    Console.WriteLine();  
                }  
                Console.WriteLine("规则二维数组输出方法二:  ");  
                foreach (int j in arrray1)  //规则二维数组的长度是数组元素的个数,arrray.length=10;      
                {  
                    Console.Write(j + "   ");  
                }  
                Console.WriteLine();  
                Console.ReadLine();  
            }  
        }  
    }  
    

    2、注意

    1. 规则数组的Length是数组元素的个数,不规则数组的Length是数组的行数
    2. array.GetLength(0)表示取数组的行数,可以用在规则和不规则数组中;而array.GetLength(1)表示取数组的列数,只能用在规则数组中。要想取不规则数组的列数,只能用array[i].Length的方式。
    3. 取规则二维数组的元素格式是array[i,j],不是array[i][j].
    4. 字符串数组赋初值不需要花括号{},如string [] s = {“hello”, “world”}
    展开全文
  • 一维数组创建的几种方法

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

    数组可以说是对于每种语言学习中的最基础的数据结构之一,几乎是在所有项目中都会涉及到数组的使用,接下来就详细介绍一下数组的声明、创建和初始化以及实例代码解析,以Java语言描述

    声明

    数据类型 数组名称[]
    或
    数据类型[] 数组名称 //首选的方法

    这部分来说俩种声明方式的效果是相同的,但是推荐首选第一种方法来声明,因为第一种方法更加直观,更具有可读性,可以通过声明看出是一种引用类型,而不是普通的数据类型
    具体整型数组声明如下:

    声明int型数组
    int[]  arrNum;
    int arrNum[];

    这里的命名看个人喜好,不管怎样要有自己的规范,我个人一般是加前缀arr
    另外需要注意的是,Java语言中声明数组时不能指定其长度,因为数组是一种引用型变量,也就是说在数组定义时实质上是定义了一个引用变量(或者说是一个指针),而此时这个引用变量还没有指向任何有效的内存,并且这时候在内存中还没有开辟任何内存空间,所以不能指定长度.
    错误定义

    //int[5] arrNum;
    //int arrNum[5];

    那么这个时候学过C++的可能会问,为什么在C++中这样定义数组是合法的呢?而且是这样定义以后就可以使用,Java却需要创建、初始化以后才可以使用?
    因为C和C++中的数组就是内存块,而Java中出于安全性考虑,定义的数组是对象,数组保存的仅仅是对象的引用,而不是对象本身,Java中对象是在堆中的,因此数组无论保存原始类型还是其他对象类型,数组对象本身是在堆中的。

    创建

    Java使用new关键字创建数组,如果数组创建没有初始化,必须指定数组的大小

    arrNum = new int[5];//正确
    arrNum = new int[]{0,1,2,3,4};//正确
    //arrNum = new int[];//错误,未初始化也未指定数组的大小

    案例一:

    public class ArrayDemo {
        public static void main(String []args){
            int [] arrNum;
            int [] arrNum1;
            int [] arrNum2 = new int[5];
            arrNum = new int[5];
            arrNum1 = new int[]{1,2,3,4,5};
            System.out.println(arrNum[0]);
            System.out.println(arrNum1[0]);
            System.out.println(arrNum2[0]);
        }
    }

    可以看到以上这三种方法创建数组都是正确的

    初始化

    其实在上面的案例中已经涉及到了数组的初始化,数组的初始化分为静态初始化、动态初始化以及默认初始化
    动态初始化就是在创建过程中只是声明数组的大小,而由系统为数组分配值

    int [] arrNum;
    arrNum = new int[5];
    int [] arrNum = new int[5];//简化方式

    静态初始化 就是由程序员显式的指定每个数组元素的值

    int [] arrNum1;
    arrNum1 = new int[]{1,2,3,4,5};
    int[] arrNum1 = {1,2,3,4,5};//简化方式

    这里对于静态初始化的方式,推荐使用第一种方式,不推荐简化方式。

    堆栈分析

    以上数组创建的方式,其实归根到底总共是俩种方式:
    方式一:

    int[] arrNum;
    arrNum = new int[5]; 

    对于这种方式,实质上第一句是创建了一个引用对象,可以认为是在栈内存中开辟了一个对象,而为这个对象创建了一个空指针,这时候如果没有第二句,那么编译器就会报错空指向异常,第二句的作用就是在堆内存中开辟出大小为5的内存空间
    方式二:

    int[] arrNum = new int[5];

    实际上这种方法就是省去了第一步,也可以说是将对象在堆栈中开辟的过程合为了一个过程

    引用传递

    既然前面提到了数组实际上是一种引用类型,那么数组是一定可以发生引用传递的,什么叫引用传递?实质就是同一块堆内存空间能够被不同的栈空间所访问,那么数组的引用传递是怎么实现?
    案例二:

    public class ArrayDemo {
        public static void main(String[] args) {
            int[] arrNum;
            arrNum = new int[]{1, 2, 3, 4, 5};
            int[] temp = arrNum;
            temp[0] = 10;
            for (int i = 0;i < arrNum.length; i++){
                System.out.println(arrNum[i]);
            }
        }
    }
    输出:
    10
    2
    3
    4
    5
    
    Process finished with exit code 0

    这个时候对于语句int[] temp = arrNum; 执行的就是将temp数组在栈内存空间中开开辟的地址指向和data数组同样的堆内存地址,而这个时候改变temp[0]的值实质上同时改变了arrNum[0]的值。

    总结

    以上就是详细的学习了数组的一些相关操作,但是这只是为了掌握数据的底层一些设计,在实际工作中,不管动态还是静态的方法一般都不会用到,因为数组有一个最大的缺点就是数组的长度不能改变,实际过程中一般都是通过传值或者别的方式进行动态的生成数组,而不是提前指定数组的大小。

    Java创建数组的几种方式
    数组在C++和java中的区别

    展开全文
  • 一维数组

    2019-07-19 09:21:49
    下面主要聊一下一维数组、二维数组、字符数组的定义和类型说明符引用、以及字符串处理函数 1.1一维数组 一维数组是C语言中用来存储和处理一维序列数据的数据类型。数组中的所有元素均属于同一类型。组合使用数组名...

    数组是构造类型的一种,数组中的每一个元素都属于同一种类型。下面主要聊一下一维数组、二维数组、字符数组的定义和类型说明符引用、以及字符串处理函数

    1.1一维数组

    一维数组是C语言中用来存储和处理一维序列数据的数据类型。数组中的所有元素均属于同一种类型。组合使用数组名和数组下标可以方便地访问数组元素。
    1.1.1一维数组的定义和引用

    1.一维数组的定义
    一维数组是用于存储一维数列中数据的集合。一维数组的定义方式如下:
    类型说明符 数组名 【常量表达式】;

    “数组名“就是这个数组型变量的名称,命名规则与变量名一致
    数组中存储元素的数据类型由“类型说明符给出”,可以是任意的数据类型(整形、实型、字符型)。
    “常量表达式“定义了数组中存放的数据元素的个数,即数组长度。类如a[5],5表示数组中有个元素,下标从0开始到4结束。

    注意
    在数组a[5]中,只能使用到a[0]-a[4]、

    2一维数组的引用

    数组必须先定义再使用。数组元素的表现形式如下

    数组名 【下标】
    下标可以是整型常量或整型表达式

    例子 6.1 任意输入5个数据,编程实现将这5个数据逆序存放
    在这里插入图片描述

    程序中借助中间变量temp来实现数据间的转换。语句int a[5]是定义一个有5个元素的数组,程序中用到的a[i],就是对数组元素的引用。

    1.1.2一维数组的初始化

    一维数组的初始化可以通过以下几种方法来实现

    ⑴在定义数组时直接对数组元素赋初值

    例子
    隔位输出数组中的元素
    在这里插入图片描述

    ⑵只给一部分元素赋值,未赋值的部分元素值为0.

    部分元素赋值

    在这里插入图片描述

    可以看到,未赋值的部分默认为0
    ⑶在对全部数组元素赋初始值的时候,可以不指定数组长度

    不指定数组长度

    在这里插入图片描述

    展开全文
  • 【C语言】一维数组和二维数组

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

    1. 解析一维数组的创建和初始化:

    创建:创建一维数组时,需有数组类型,数组名,以及数组的大小(可有可无,若没有大小则在初始化时,根据初始化的内容自动分配)。
    初始化:数组在使用前必须明确数组的元素已经被赋予确定的值。

    初始化可以有以下两种方法:
    (1)在数组定义时就赋给数组确定的值;
    (2)先给数组一个声明,然后用赋值语句或输入语句给它赋值。

    int arr[];arr[4]={1,2,3};//这种初始化是不允许存在的

    2. 一维数组的使用
    数组元素的引用形式为

    数组名[下标]    arr[i]

    下标为常量表达式。C语言规定只能逐个引用数组元素,而不能一次引用整个数组 。数组元素的下标从0开始,最后一个元素下标为 sizeof(arr)-1。

    3.一维数组的存储
    一维数组存储在内存的一个连续的存储区。

    4.一维数组的指针访问
    在内存中存放的数据都有一个具体的地址,数组也具有具体的地址。数组名表示数组的首地址。指针变量是专门用来存放地址的。

    • 如果指针p指向数组a[20]的第一个元素,那么 p+1 就指向数组的第二个元素,以此类推可知,p+i 指向的是数组的第 i+1 个元素,但指的却是数组 a[i] 的地址,a[i] 也可以用 *(p+i)*(a+i) 表示。

    5.二维数组的创建与初始化

    二维数组的每个元素具有相同的数据类型。
    形式一般为数据类型 数组名[行数常量表达式][列数常量表达式]

    二维数组的初始化方法有以下几种:

    int arr[5][4];//定义
    int arr[3][4] = {{1,2,3},{4,5,6},{7,8,9}};//初始化
    • 按行赋初值;
      int a[3][4] = {{1,2,3},{4,5,6},{7,8,9}};

       // 在没有赋初值的地方,默认为0。
      
    • 按顺序赋初值;
      int a[3][4] = {1,2,3,4,5,6,7};

    • 使用关键字static赋初值 ;

    static int a[2][3];//默认所有元素为0
    • 对部分元素赋初值

    • 全部赋值时第一维长度可以略去

    • 通过赋值语句逐个给元素赋值

    同样,在二维数组中,
    int a[3][4];a[3][4]={1,2,3,4,5,6,7};// 也是不允许的

    6.二维数组的使用

    二维数组必须先定义后使用,可进行赋值运算,取地址运算,算术运算(加减乘除等)。
    可通过下标的方式使用。代码如下:

    #include<stdio.h>
    int main()
    {
        int arr[3][2] = {0};
        int i;
        int *p = &arr[0][0];//指针指向二维数组的首元素
        for (i = 0; i < 3*4; i++)
        {
            p[i] = i;
        }
        for (i = 0; i < 3; i++)
        {
            int j;
            for (j = 0; j < 2; j++)
            {
                printf("%d ", arr[i][j]);
            }
            printf("\n");
        }
    
        system("pause");
        return 0;
    }

    7.二维数组的存储

    二维数组在内存中是连续存储的。

    8.二维数组的指针访问

    二维数组与一维数组大同小异。
    如果指针p指向数组a[2][3]的第一个元素,即a[0][0],那么 *(p+1) 就指向数组的第二个元素a[0][1]…….

    展开全文
  • 01 一维数组 数组,就是把相同数据类型的变量组合在一起而产生的数据集合。 数据就是从某个地址开始连续若干个位置形成的元素集合。 数据类型 数组名[数组大小]; 数组大小必须是整数常量,不可以是变量。 一维...
  • 通过对前面知识的学习,我们已经知道如何定义和使用... 丹尼斯·里奇(C语言的发明者,Unix之父,必须要牢记这位大师)早就为我们准备了数组这种类型: 数组是同类型有序数据的集合,可以为这些数据的集合起个...
  • 一维数组,二维数组初始化

    千次阅读 2017-03-26 20:51:02
    1 static int a[10]={0,1,2,3,4,5,6,7,8,9}; ...经过上面的定义和初始化后,a[0]=0,a[1]=1,…,a[9]=9...(2)初始化时可以只对部分元素赋初值。例如: 1 static int a[10]=
  • 一维数组的另一赋值方法

    千次阅读 2019-01-07 23:55:58
    1.一维数组的一赋值方式: char head[]="HTTP/1.1 200 OK\r\n" \  "Content-Type: text/html\r\n"\  "\r\n"; 2.strlen和sizeof计算数组大小时的区别 最重要的一点:strlen()不会计算'\0'.在写...
  • 数组是存储同一种数据类型多个元素的集合。也可以看成是个容器。 ›数组既可以存储基本数据类型,也可以存储引用数据类型。(对象的地址)(对象数组数组的定义格式 ›格式1:数据类型[ ] 数组名; ›格式...
  • 一维数组、多维数组

    2019-09-26 20:02:22
    1.1 一维数组 什么是数组? 数组可以存放多个同一类型数据。 数组 一、关于数组的用法,有三方式:1、程序员用法 1 、数组的定义 数据类型 数组名[]=new 数据类型[数组大小]; int a[]=new int[5];//定义一个数组名...
  • 上节讲解的数组可以看作是一行连续的数据,只有一个下标,称为一维数组。在实际问题中有很多数据是二维的或多维的,因此C语言允许构造多维数组。多维数组元素有多个下标,以确定它在数组中的位置。本节只介绍二维...
  • 一维数组有以下两定义方式,推荐使用第一定义方式 &amp;amp;amp;amp;amp;amp;lt;数据类型&amp;amp;amp;amp;amp;amp;gt;[] &amp;amp;amp;amp;amp;amp;lt;数组名称&amp;amp;a
  • C语言入门系列之6.一维和二维数组

    千次阅读 2020-04-27 10:18:31
    在C语言中使用数组必须先进行定义,一维数组声明格式为类型说明符 数组名 [常量表达式];,不允许对数组的大小作动态定义;形式为数组名[下标];给数组赋值包括赋值语句赋值、初始化赋值和动态赋值3方式。二维数组...
  • 构造类型的基本概念:在c语言中,变量类型除了前面已介绍的几种基本类型之外,还有另外一些复杂类型,合称为构造类型。构造类型是由基本类型构造而成的(如数组、结构体、共同体、枚举型)。构造类型的每个分量是...
  • C语言支持一维数组和多维数组。如果一个数组的所有元素都不是数组,那么该数组称为一维数组一维数组的定义方式在C语言中使用数组必须先进行定义。一维数组的定义方式为:类型说明符 数组名 [常量表达式];其中,...
  • 1.2 一维数组的定义、赋值和初始化

    千次阅读 2020-09-21 14:33:38
    一维数组(one-dimensional array)实质上是一组相同类型数据的线性集合,是数组中最简单的一数组。 数组是引用数据类型,引用数据类型在使用之前一定要做两件事情:声明和初始化。所以本文将重点介绍一维数组的...
  • C语言一维数组的定义

    千次阅读 2016-11-03 22:21:41
    一维数组的定义方式  在C语言中使用数组必须先进行定义。一维数组的定义方式为:  类型说明符 数组名 [常量表达式];  其中,类型说明符是任一基本数据类型或构造数据类型。数组名是用户定义的数组标识符。方...
  • 【C语言】-一维数组

    2015-11-27 22:46:00
    数组: 数组是一系列相同类型的有序数据的集合,数组中的每一个元素都是同一个数据类型,所有元素共用一个名字,用下标来区别数组中的每一个元素。 C语言中,数组属于构造数据类型。...一维数组是最基本的数据结...
  • 一维数组的定义方式

    万次阅读 2016-08-11 20:14:26
    一维数组的定义方式 在C语言中使用数组必须先进行定义。一维数组的定义方式为:  类型说明符 数组名 [常量表达式]; 其中,类型说明符是任一基本数据类型或构造数据类型。数组名是用户定义的数组标识符。方括号...
  • 《C语言课件:9-2指针与一维数组》由会员分享,可在线阅读,更多相关《C语言课件:9-2指针与一维数组(26页珍藏版)》请在人人文库网上搜索。1、第九章 指针,指针与一维数组,2,指针特别适用于访问在内存中连续存储的...
  • 一维数组(one-dimensional array)实质上是一组相同类型数据的线性集合,是数组中最简单的一数组。 数组是引用数据类型,引用数据类型在使用之前一定要做两件事情:声明和初始化。所以本文将重点介绍一维数组的...
  • C语言 二维数组

    千次阅读 2016-01-15 22:21:24
    # 二维数组基本概念 ##1.二维数组的基本概念 - 所谓多维数组就是一个... +可以看作由一维数组a[0]和一维数组a[1]组成,这两个一维数组都包含了3个int类型的元素 ##2.二维数组的定义 - 格式:  +数据类型 数组名[一维
  • 在谈论指针之前,先讲一下文件包含#include命令,通常有两形式#include&...说的简单一点就是自己定义的头文件要使用双引号的形式,在这里还要说明一点,文件包含命令可以包含任意一种格式的文...
  • // // main.m // CLesson04 // // Created by 康 亮亮 on 15/10/10. // Copyright (c) 2015年 Darling.com. All rights reserved. ...// 一维数组、数组排序、字符数组 #import int main(int a
  • C语言数组之一维数组

    2013-08-14 00:47:49
    1.1.1 数组概述 在程序设计中,为了处理方便,把具有相同类型的...C语言数组按维数分有一维、二维和多维,按数组元素的类型又可分为数值数组、字符数组、指针数组、结构体数组等各种类别。 对数组特点概括如

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,650
精华内容 2,260
关键字:

一维数组的赋初值几种