为什么二维数组可以省略行

  • 二维数组初始化时可以省略行或列吗?
    答:按行连续初始化int a[2][3]={5,6,7,8,9,10};二维数组初始化中,可以省略行,但不能省略列 a选项,省略行列,错误 b选项,省略行列,错误 c选项, int a[2][3]为 2行3列, int a[2][3] = {{1,2},{3,4},{5,6}};初始化数据为3行2列,错误 D选项正确,二维数组初始化,...
  • 在任何情况下 二维数组的初始化都可以省略第一维大小。为什么错误?
    答:如果省略第一维大小,则必须给出初值表,编译器才能根据初值表确定第一维的最小长度。如果既没有第一维长度又没有初值表,将导致编译错误。将二维数组当作参数的时候,必须指明所有维数大小或者省略第一维的,但是不能省略第二维或者更高维的大小,这是由编译器原理限制的。因此,可以省略第一维的维数...
  • ...在进行二维数组初始化时,可以省略行指标吗?
    答:如果全部元素的初值都已提供,则数组的第一维长度可以不指定,但第二维长度不能省略。所以你的例子是错的 a[2][3]需要六个 a[3][3]需要九个 7不能被整除
  • 19题怎么回事
    答:二维数组定义时可以省略行数,系统会根据列数跟元素个数自动给行数赋值,D很明显是错的,行数是2,却有三个元素
  • 定义二维数组时行列下标都可以不指定吗
    答:二维数组必须指定列的数量,行的数量可以不定义即可以省略第一维的定义,但不能省略第二维的定义
  • 数组定义高手请进
    答:二维数组在初始化时,可以根据列数,推算出行数,所以编译器可以正确的分配空间。而只有行数,是推不出列数的,无法进行内存分配,报错。例如float x[3][]={{1},{2},{3}};只知道是3行,至于列数,不知道,因为其他元素是可以不显式的初始化的。double y[][3]={0} 变成图 就是 0 0...
  • 简单C语言问题
    答:图5-6 二维数组的赋值 等价于:int a[3][4]={80,75,92,77,61,65,86,71,59,63,70,90};当为所有元素初始化时会自动按行赋值,因此可以省略区分行的{}。以上两种形式还可以进行简化,当所有元素有初值时可以省略第一维,即行号:int a[ ][4]={80,75,92,77,61,65,86,71,59,63,...
  • 在二维数组中,int[,] a={{3,7,8},{5,12,4}};是正确的吗?
    答:额,这是什么鬼;int a[][3]={{2,7,8},{2,3,4}};//你可以这样 int b[11][3]={{2,3,4},{2,3,4}};//也可以这样;int c[22][]={{2,3,4},{2,3,4}};//但是不可以这样;int d[][]={{2,3,4},{2,3,4}};//也不可以这样 总之初始化时,行长度可以省略,列...
  • 对以下定义的二维数组a,数组元素 a[2][0]的值是?
    答:您好,很高兴回答您的问题。二维数组在定义时是可以省略行这一维长度的。那么怎么知道数组有几行呢,就根据定义时的内层花括号来看。所以题目中就应该是三行三列的二维数组,那么a[2][0]就是第三行第一个元素所以结果就为2。以上就是我的回答,希望能帮助到您。
  • C语言:问一下高手:为什么这个数组的初始化是错的??int a[2][]={2...
    答:二维数组定义中,能够省略的是第一维的定义数,数组每行的数据元素总数必须指定,定义可以改为:int a[][2]={2,3,4};此时创建的是一个2行2列的数组,其中a[0][0],a[0][1],a[1][0]三个数据元素的内容分别是2,3,4 要弄清二维数组在内存的排列方式,这个问题就不难理解了。

  • 网友评论:

    离该15336082167: 为什么2维数组行可以省略 -
    19628单琰 :[答案] 因为二维数组在初始化时,是按行进行赋值的,并且每行元素(最好)用大括号括起来.看个例子很好理解的!譬如定义a[2][3],可以由两种情况省略第一维的值.如下: a[][3]={{1,2}{1,2,3}},很明显行值是可以省的,因为不会造...

    离该15336082167: 为什么2维数组行可以省略 -
    19628单琰 : 因为二维数组在初始化时,是按行进行赋值的,copy并且每行元素(最好)用大括号括起来.看个例子很好理解的!!! 譬如定义a[2][3],可以由两种情况省略第一维的值.如下:a[][3]={{1,2}{1,2,3}},很明显行值是可以省的,因为不会造成歧义!!!注意:使用大括号括对每一行进行赋值的这zhidao种情况下,每一行也可以只对部分赋值. a [][3]={1,2,0,1,2,3},这种情况必须对每一个元素赋值,但当元素个数多时不便使用,推荐第一种!!!

    离该15336082167: 在定义函数的时候,如果参数是二维数组,为什么可以省掉一维的部分?不太明白 -
    19628单琰 : 比如 int a[][3]={ {1,2,3},{4,5,6},{7,8,9} }; 你就是在告诉编译器,这个数组中三个数是一组,我懒得数有几组了,你帮我数一下吧 结果与写int a[3][3]={ {1,2,3},{4,5,6},{7,8,9} };是一样的 省掉的部分由编译器自动帮你填上了而已.在函数中只需要定义第二维的尺寸,让程序知道在增加第1维的下标值时,要跳过多少字节的存储器即可

    离该15336082167: c语言中一维数组为什么一定要对长度定义,不能自动补0而二维数组就可以没有行数长度,自动补0呢? -
    19628单琰 : 首先要明确数组的在计算机的分配方式.计算机会分配一块《连续》的内存给数组来使用,这样就可以通过《下标》很方便的访问数组的元素.因此数组的长度就一定是要固定的,因为内存是一直在动态的分配和释放的,如果数组的长度不固定...

    离该15336082167: 在编程的时候,三维和三维以上的数组主要用来干什么?原理是什么? -
    19628单琰 : 二维数组a[ ][3],表示该数组有几行3列,行被省略了,但是知道有3列,你这个表述好像有错误,应该是在赋值时可以省略,应该是inta[ ][3]={ {003},{2,4},{567} } 像这样就可以省略行了,系统就知道是3行,3列0,0,30,2,45,6,7(2)当你用到该数组时,你肯定会定义它的内容把,因为在C语言中,数组都是先定义后使用的,一旦定义了,数组的类型和长度都确定了,所以在后面的使用中是不能更改的,而变量是没有确定的量,可以更改,所以数组大小不能是变量.

    离该15336082167: c中为什么二维数组的行数组不用定义 -
    19628单琰 : 这是语法的问题吧,一般第一个数据组下标可以不用定义,一维数组也是可以不用定义的,编译的时候会根据初始化的内容多少初始化数组个数,当然这要是在定义的数组的时候一起初始化.所以一般要获取这个数组的个数可以用sizeof(v)/sizeof(v[0])来获得.

    离该15336082167: 定义二维数组为什么可以省略第一维的长度,但却不能省略第二维的长度啊? -
    19628单琰 : 有初始化的时候,第二维的数字代表分配内存的长度,第一维的数字代表分配内存倍数; 倍数可以让机器去数,但长度没有的话就不好开辟空间了.

    离该15336082167: 如果用二维数组做函数形参,为什么可以省略第一个下标
    19628单琰 : 没有为什么,这种就是语法所规定的,虽然具体的数组长度可以在赋值的时候决定,但数组本身在默认赋值的时候是一行行依次保存的,只有满了一行才会保存到下一行 如果你在声明时候不给个准确的每行可以保存的个数,程序是不知道什么时候“换行”的,也就是必须要有第二个下标的原因

    离该15336082167: 二维数组第二维的长度任何情况下都不可以省吗? -
    19628单琰 : 当然不能省略,因为二维数组是由若干个一维数组组成的,在内存中数组是按行存放的,因此,在定义二维数组时必须指定列数.

    离该15336082167: 二维数组做函数参数时为什么二维的大小不能省,二一维的可以省 -
    19628单琰 : c++其实没有二维数组,它就是数组的数组.二维数组是这样组成的a[2],你把a[0]放一个数组,a[1]放一个数组就组成了二维数组.但是它数据还是按顺序排列的. 所以当你的数据存好后,编译器必须得知道你的行或列.才能知道你的内存对应...

    热搜:二维数组a 3 4 怎么排列 \\ c二维数组的行和列 \\ 二维数组哪个可以不写 \\ 二维数组可以省略列吗 \\ 定义二维数组int a 3 4 \\ 二维数组第一个空省略 \\ 二维数组能省略列吗 \\ 二维数组哪个是行 \\ 二维数组的行列可以省略吗 \\ 二维数组a34表示几行几列 \\ c语言二维数组可以省略行 \\ 将一维数组转为二维 \\ 二维数组可以缺行还是列 \\ 二维数组哪一个可以省略 \\ 二维数组下标可以省略吗 \\ 定义二维数组可以省略行数 \\ 二维数组的列数能不能省 \\ 二维数组列数可以省略吗 \\ 二维数组能省略行吗 \\ 一维数组可以省略行还是列 \\

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网