精华内容
下载资源
问答
  • java二维数组的初始化

    万次阅读 2016-11-02 20:17:27
    正确的写法是: String [][]a= { {"1","2","3"}, {"4","5","6"} ...26,一维数组的形式:(1), int a[]; a = new int[5]; 等同于 int a[] = new int[5]; (2), int[] a; a = new int[5]; 等同于 int[] a =
    正确的写法是:
    String [][]a=
    {
        		{"1","2","3"},
        		{"4","5","6"}
    };
    在讲一点数组的知识:
    26,一维数组的形式:(1),  int a[]; a = new int[5];  等同于 int a[] = new int[5];
    		   (2),  int[] a; a = new int[5];  等同于  int[] a = new int[5];
    27,二维数组:int a[][] = {{1,2}, {3,4,5,6}, {7,8,9}};二维数组可看成以数组为元素的数组。
    	java中多维数组的声明和初始化应按从高维到低维的顺序进行,如:
    	方法(1);
    	int a[][] = new int[3][];
    	a[0] = new int[2];
    	a[1] = new int[4];
    	a[2] = new int[3];//正确
    	int t[][] = new int[][4];//非法
    	方法(2);
    	int a[][] = new int[3][5];//正确,分配一个三行五列的二维数组。
    展开全文
  • </li><li>然后我把数组初始化的部分代码删掉,只定义二维数组:</li><li> <code>#include<stdio.h> int main(void) { int row; printf("please input row number:"); scanf(&#...
  • Python中初始化一个5 x 3每项为0数组,最好方法是: ...我们知道,为了初始化一个一维数组,我们可以这样做: alist=[0]*5 没错,那我们初始化一个二维数组时,是否可以这样做呢: multi=[[0]*5]*...

    转载:https://www.cnblogs.com/coderzh/archive/2008/05/18/1201993.html

    Python中初始化一个5 x 3每项为0的数组,最好方法是:

    multilist = [[0 for col in range(5)] for row in range(3)]


    我们知道,为了初始化一个一维数组,我们可以这样做:

    alist = [0] * 5


    没错,那我们初始化一个二维数组时,是否可以这样做呢:

    multi = [[0] * 5] * 3


    其实,这样做是不对的,因为[0] * 5是一个一维数组的对象,* 3的话只是把对象的引用复制了3次,比如,我修改multi[0][0]:

    multi = [[0] * 5] * 3
    multi[0][0] = 'Love China'
    print multi

    输出的结果将是:
    [['Love China', 0, 0, 0, 0], ['Love China', 0, 0, 0, 0], ['Love China', 0, 0, 0, 0]]
    我们修改了multi[0][0],却把我们的multi[1][0],multi[2][0]也修改了。这不是我们想要的结果。

    如果我们这样写呢:

    multilist = [[0] * 5 for row in range(3)]
    multilist[0][0] = 'Love China'
    print multilist

    我们看输出结果:
    [['Love China', 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0]]
    恩,没问题。但是,由于使用 * 的方法比较容易引起混淆导致Bug,所以还是推荐使用上面第一种方法,即:

    multilist = [[0 for col in range(5)] for row in range(3)]

     

    展开全文
  • Java的一维数组

    2019-11-20 19:01:14
    1.一维数组的声明和初始化 先声明正确的方式如下: int [] m // 声明 静态初始化:数组的初始化和数组元素的赋值操作同时进行 m = new int [] {1,2,3,4}; 动态初始化:数组的初始化和数组元素的赋值操作分开进行 String...

    1.一维数组的声明和初始化

    先声明正确的方式如下:
    int [] m // 声明
    静态初始化:数组的初始化和数组元素的赋值操作同时进行
    m = new int [] {1,2,3,4};
    动态初始化:数组的初始化和数组元素的赋值操作分开进行
    String name = new String[2]
    类型自动推断: int[] a = {1,2,3,4,5};

    以下是错误的方式:
    int[] a1 = new int[]
    int[10] a2 = new int[10]
    int[] a3 = new int[2]{1,2,3}; //重复定义了

    2.一维数组的元素的引用: 通过角标的方式调用
    注意:数组的角标或索引从0开始,到数组的长度-1结束

    3.数组的属性:length
    System.out.println(name.length);//2

    注意:
    数组一旦初始化,其长度就是确定的.一旦确定就不可以修改

    4.一维数组的遍历
    for(int i = 0; i < name.length;i++){
    System.out.println(name[i]);
    }

    5.一维数组的元素的默认初始化

    ①数组元素是整型: 0
    ②数组元素是浮点型: 0.0
    ③数组元素char型: 0或’\u0000’,而非’0’
    ④数组元素是boolean型 : false
    ⑤数组元素是引用数据类型: null

    展开全文
  • 一维数组:int a[c],其中a是数组名称,c是数组维度,数组维度必须是常量表达式!例如: 1 int c=3; 2 int a[c];//错误!由于c不是常量表达式,所以该定义非法。若将c定义为const int,即c成为一个常量表达式,...

     

     一维数组:int a[c],其中a是数组名称,c是数组维度,数组维度必须是常量表达式!例如:

    1 int c=3;
    2 int a[c];//错误!由于c不是常量表达式,所以该定义非法。若将c定义为const int,即c成为一个常量表达式,则可正常编译。

     

      数组的初始化:

    int a[3]={1,2};//正确!等价于a[3]={1,2,0}
    int b[3]={1,2,3,4};//错误!初始值过多。
    int c[]={1,2};//正确!等价于c[2]={1,2}
    string d[3]={"hi","bye"};//正确!等价于d[3]={“"hi","bye",”“}

    //字符数组的特殊性:一定要注意字符串字面值得结尾处还有一个空字符!
    char e[]={"C++"};//自动在字符串结束出添加空字符! char e[3]={"C++"}//错误!没有空间可存放空字符!

    //不允许拷贝和赋值
    int f[]={1,2};
    int g[]=f;//错误!不允许用一个数组初始化另一个数组。
    g=f;//错误,不能把一个数组赋值给另一个数组。

     

      数组元素的访问可以通过数组名+下标号访问,此处应注意的问题是数组的下标是否在合理范围之内(这是有程序员负责检查的),当下标越界的时候,会引起一种严重的程序故障:缓冲区溢出(buffer overflow)。

      在用到数组名的地方,编译器会自动地将其替换成一个指向数组首元素的指针。从一个指针加上或减去一个整数,结果仍然是指针,新指针指向的元素与原来的指针相比前进或后退了该整数个位置!

       资料:

      数组名的本质是代表数组对象的变量名,是一个左值,是一个不能被改变的左值。但是由于在程序中不保存数组的大小,所以通过数组名只能访问数组的左值,不能访问数组的右值。由于这个原因,数组名在作为右值使用的时候被赋予另外一个新的意义——指向数组第一个元素的指针,这就是   array-to-pointer   转换规则。  数组名在程序中作为左值使用的情况屈指可数——在大部分情况下数组名都是作为右值使用的,这时它是一个指针,一个指向数组第一个元素的指针,一个指向不能再被改变的指针——因此是一个指针常量。 那么数组名在什么情况下作为左值使用的呢?根据标准的规定,只有当数组名作为sizeof、&运算符的操作数的时候,它是一个左值,类型为数组类型;除此之外的所有情况,数组名都是一个右值,被编译器自动转换为指针类型,这种情况下我们就说数组名是一个指针,并且是一个指针常量。  单纯地说数组名是一个指针是片面的。我们通常说数组名是一个指针是建立在一个前提的基础之上的,那就是:数组名作为右值使用的时候。  对于数组名总结如下:  在作为左值使用的时候,数组名表示数组对象,是数组类型。在作为右值使用的时候,数组名是一个指针,是指针类型,不再是数组类型。数组名到底是数组还是指针取决于其上下文环境。
      PS:左值指的是能够出现在等号左边及右边的变量(表达式),右值则指的是只能出现在等号右边的变量(表达式)。左值就是在程序中能够寻址的东西,右值就是没法取到它的地址的东西(不完全准确)。

    二维数组:c++中实际上并没有多维数组,通常所说的多维数组本质上是数组的数组!!! 例如,int a[2][3]={{1,2,3},{4,5,6}}表示一个大小为2的数组,每个元素是含有3个整数的数组。

      首先强调一下指针的概念(C++指针详解),不能简单把指针看成地址,不要忽略掉数据类型。也就是说一个指针包含两方面,一个是地址,一个是数据类型。指针是变量,这个变量的值是个地址。变量的类型是指向一个数据类型。可能有两个指针的值一样但是他们其实是不一样的,因为他们指向的数据类型不一样,此时使用取内容符号*取得的东西就会不一样了。例如:对于二维数组int a[2][3]={1,2,3,4,5,6},a是一个指针,a[0]也是一个指针,并且这两个指针的值是一样的,但是它们的数据类型不同!所以对它们用*取内容所得结果也不一样,*a[0]是一个整数:1。因为a[0]就是指向的类型就是整数,占4个字节。使用*a[0]以后,系统会从a[0]开始往后取4个字节。然后把这4个字节的内容转化为一个整数也就是我们的a[0][0]了;*a是一个地址。因为a指向的是一个大小为3的整数数组:{1,2,3},*a表示的就是a[0]。此外还有指针的运算问题注意*(p+n)恒等与p[n]! a+1还是个指针,指向的数据类型也不变,不过他的值变成a+sizeof(a所指向的数据类型),也就是到了a这个指针的值往后跳一个它所指数据类型这么大小的那个内存地址。而a[0]+1则表示a[0]指向的值得下一个整数!

    例子:

    int a[2][3]={0,1,2,3,4,5};
    cout<<sizeof(a)<<std::endl;
    cout<<*a<<endl;//输出结果等于a[0]的地址,即{0,1,2}的地址。
    cout<<**a<<endl;//输出0
    cout<<a[0]<<endl;//输出a[0][0]的地址。
    cout<<*a[0]<<endl;//输出0
    cout<<*a[1]<<endl;//输出3
    cout<<**(a+1)<<endl;//输出3
    cout<<*(a[0]+1)<<endl;//输出1
     

      

      

    转载于:https://www.cnblogs.com/duanpengcheng/p/4524605.html

    展开全文
  • 正确定义二维数组

    万次阅读 多人点赞 2019-06-24 16:23:17
    对二维数组进行正确初始化维数组必须指定列数量,行数量可以不定义即可以省略第一维的定义,但不能省略第二维定义 1.分行进行初始化 int a[2][3] = {{1,2,3},{4,5,6}}; 在{}内部再用{}把各行分分开,第0行...
  • 一个一维数组A的元素如果还是一个一维数组类型的,则,此数组A称为二维数组。 2. 二维数组的声明与初始化 正确的方式: //一维数组 int[] arr = new int[]{1,2,3}; //静态初始化 int[][] arr1 = new int[]...
  • 一个一维数组A的元素如果还是一个一维数组类型的,则,此数组A称为二维数组。 2.二维数组的声明与初始化 正确的方式:  int[] arr = new int[]{1,2,3};//一维数组  //静态初始化  int[][] arr1 = new int[][]{...
  • 一个一维数组A的元素如果还是一个一维数组,那么此数组A就是一个二维数组 */ 2.二维数组声明和初始化 /* 正确方式: 静态初始化: int[][] arr =new int[][]{1,2},{3,4},{5,6}}; 动态初始化1: String[][] ...
  • 当然不行,不管从初始化器,还是从原理上来讲都不正确,首先a[3][4]表示的是数组中第4行第5个元素,请问,可以对数组中具体的个元素赋这么长串值吗?所以不能这样赋值。第种写法是属于初始化初始化会自动...
  • Python中创建二维数组

    千次阅读 2017-09-15 19:45:26
    Python中列表list可以当做一维数组使用,但是没有直接定义使用二维数组。如果直接使用a = [][]会产生SyntaxError: invalid syntax语法不正确错误。一般Python中创建二维数组方法是使用列表解析方法 列表...
  • 这是因为二维数组的初始化方式不对 错误示例: int[][] a = null; a[0][0] = 0; 正确示例: int a[][] = new int[5][5]; a[0][0] = 0; 如果你要定义个随机大小数组 ...
  • 1.二维数组的三种声明形式 2.二维数组的下标对应值 3.声明二维数组的同时进行创建数组 ...4.二维数组初始化 5.循环输出二维数组 编程练习 转载于:https://www.cnblogs.com/lilijun/p/7285097.html...
  • // 通过分号将字符串拆分成一维数组{"a=10";"ab=15";"B=20"} String[][] arr = new String[temp.length][];// 初始化一个二维字符串数组,只指定了行数 for (int i = 0; i ; i++) { String[] tempAgain = ...
  • 以下能对二维数组a进行正确初始化的语句是()。 正确答案: B 你答案: D (错误) int a[2][ ]={{1,0,1},{5,2,3}}; int a[ ][3]={{1,2,3},{4,5,6}}; int a[2][4]={{1,2,3},{4,5},{6}}; int a[ ][3]={{1,0,1},{},{...
  • 数组()

    2020-07-02 19:32:48
    维数组可以省略行数,不可以省略列数,即a[][6]正确初始化 a[5][12]={x,x,x,x,……}; 若大括号里元素小于a的大小,则按顺序未初始化的元素为0; 若大括号里元素大于a的大小,则报错。 array later ...
  • 二二维数组元素使用 二维数组中元素相当于个变量,我们可以象使用个变量那样使用二维数组元素 用法是 数组名[下标表达式1][下标表达式2] 例 p97/1.5若有定义 int a[3][4], 则对数组a元素正确引用是( ) a[2][4] ...
  • 以下对一维数组 a 的正确说明是 D A char a 10 Bint a[] Cint k 5 a[k] Dchar a[3]={ a , b , c }; 详见教材一维数组的定义初始化 类型符 数组名 [ 常量表达式 ] 类型符是指数组中数组元素类型 数组名要符合标识符...
  • C语言数组选择题.docx

    2020-11-21 17:40:35
    1以下定义语句中错误的是 _ A) int a... D 一维数组的定义方式 类型说明符 数组名 [ 常量表达式 ] 常量表达式中可以包括常量和符号常量但不能包含变量 2以下对一维数组 a 进行正确初始化的是 _ A) int a[10]=(0,0,0,0,0
  • JAVA基础语法数组.docx

    2020-09-03 22:03:27
    JAVA基础语法数组 选择题 1 以下能对二维数组 a进行正确初始化的语句是 int a[2][] = ( {1 , 0 , 1) , (5,2,3) ) int [][] a = ( { 1, 2, 3 , ( 4, 5, 6 ) int a[2][4] = ( { 1 , 2,3 , ( 4,5 ) , ( 6 ) int [] a...
  • 1.关于一维数组初始化,下面哪个定义是错误?( ) A.int arr[10] = {1,2,3,4,5,6}; B.int arr[] = {1,2,3,4,5,6}; C.int arr[] = (1,2,3,4,5,6); D.int arr[10] = {0}; 答案解析: A正确,10个int一段连续...
  • 1以下定义语句中错误的是_ A) int a[]={1,2}; B) char a[]={"test"};... D 2 以下对一维数组 a 进行正确初始化的是_ A) int a[10]=(0,0,0,0,0; B) int a[10]={ }; C) int a[ ]={0}; D) int a[10]={ 10*2
  • 一维数组数组在创建时必须指定大小(初始化赋值时不用写大小),方括号内必须是常量或者常量表达式但arr[0]是错误,它有可能跟紧跟其后第二个数组arr2[0]地址重复数字数组 int arr[10];int arr[]={1,2,3,4,5,6,...
  • C.Int a[][3]={1,2,3,4,5,6}D.Int a[][] = {{1,2,3},{4,5,6}}定义二维数组时,若按一维格式初始化,则第一维的长度可以省略,此时,系统可根据初始化列表中值个数及第二维长度计算出省略一维长度...
  • 8.1 一维数组的定义和初始化 1、数组:一组具有相同类型变量集合数组名:用来标识这组相同类型数据名字 格式:类型 数组名[第一维长度] 2、数组大小最好用宏来定义 #define SIZE 5 int a[SIZE]; 3、注意:格式...
  • 1. 引用数组元素时, 其数组下标数据类型允许是 整型常量或...3. 以下能对二维数组a 进行正确初始化的语句是: A) int a[2][]={{1,0,1},{5,2,3}}; B) int a[][3]={{1,2,3},{4,5,6}}; C) int a[2][4]={{1...
  • 5/27/2020 C B C B 华师 语言程序设计 在线作业 华师 语言程序... a 以下能对一维数组 进行正确初始化的语句是 以下能对一维数组 进行正确初始化的语句是 A. int a[10] (0,0,0,0,0; A. int a[10] (0,0,0,0,0; B. int a
  • 答:至少一个值满足条件以下能对一维数组a进行正确初始化的语句是【 】答:int a[ ]={0; int a[10]={10*1;射频识别系统按其工作频率可分为以下哪几种?答:低频 微波 高频 超高频唐代蒲州就是今天永济市。答:错()...
  • 该类对象可以通过个n维数组进行初始化,并实现向量元素打印输出函数print,向量加plus,减minus运算函数,两个向量是否相等比较函数,创建该类实例对象来测试你编写代码的正确性。 public class ...
  • 牛客网错题收集(3)

    2020-03-30 09:40:08
    下列对字符数组进行初始化的语句正确的是? 正确答案: A 你的答案: A (正确) char a[] =“Hello”; char a[][]={‘H’,‘e’,‘l’,‘l’,‘o’}; char a[5]= “Hello”; char a[2][5]={ “Hello”,“World”}; 解释...

空空如也

空空如也

1 2 3 4 5
收藏数 87
精华内容 34
关键字:

一维数组a初始化正确的是