二维数组可以缺少行还是列
答:二维数组“行”可以省略,“列”不可以省略。二维数组本质上是以数组作为数组元素的数组,即“数组的数组”,类型说明符数组名[常量表达式][常量表达式]。二维数组又称为矩阵,行列数相等的矩阵称为方阵。对称矩阵a[i][j]=a[j][i],对角矩阵:n阶方阵主对角线外都是零元素。和一维数组相...
答:D选项正确,二维数组初始化,必须指定列的数量,行的数量可以不指定。
答:因为二维数组存储的时候是"先行后列", 如果不指定烈数, 他就不能知道一行放几个数据了 只要知道了列数, 排头放就可以知道一共能放多少行
答:二维数组可以先指定行,再指定列;但不能先指定列,再指定行
答:这个表达有些问题:C语言中的二维数组行和列的下标都是可以为0。例如 a[0][1] 或者 a[1][0] 或者a[0][0]都是有效的数组元素。只有在定义二维数组的时候有如下的限制:不可以第⼀维和第⼆维的长度都不指定。⾄少指定第⼆维的长度。原因:⼀维数组存放在...
答:二维数组必须指定列的数量,行的数量可以不定义即可以省略第一维的定义,但不能省略第二维的定义
答:二维数组代表的是行、列,平面化的.a[3][3],可以是指三行、三列
答:举个例子,假设有一个包含5行3列的二维数组A,如果只选择其中的行而不选择列,例如只访问第3行的所有元素,则只能访问A[3][0]、A[3][1]和A[3][2]三个元素,无法访问其他行的元素。此时,我们不能把这个数据结构称为一个完整的数组,因为它缺少了一些元素,无法满足数组的定义。因此,如果只...
答:在c语言里二维数组元素在内存中是按行存放的。二维数组A[m][n],这是一个m行,n列的二维数组。设a[p][q]为A的第一个元素,即二维数组的行下标从p到m+p,列下标从q到n+q,按“行优先顺序”存储时则元素a[i][j]的地址计算为:LOC(a[i][j]) = LOC(a[p][q]) + ((i −...
答:定义数组时对第一维的长度可以不指定,但第二维的长度不能省,因为系统会根据总个数和第二维的长度计算出第一维的长度 其实你可以这样理解 因为二维数组是由若干个一维数组组成的,在内存中数组是按行存放的,因此,在定义二维数组时必须指定列数。
网友评论:
于嘉15656856135:
二维数组的初始化int a[3][]={{1},{6}}正确吗? -
30185辛送
: 第一个不正确. 对二维数组的初始化,行可以缺省但列决不可以缺省,例如下边的三个语句是等价的 int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}} int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12} int a[][4]={1,2,3,4,5,6,7,8,9,10,11,12}
于嘉15656856135:
为什么2维数组行可以省略 -
30185辛送
: 因为二维数组在初始化时,是按行进行赋值的,copy并且每行元素(最好)用大括号括起来.看个例子很好理解的!!! 譬如定义a[2][3],可以由两种情况省略第一维的值.如下:a[][3]={{1,2}{1,2,3}},很明显行值是可以省的,因为不会造成歧义!!!注意:使用大括号括对每一行进行赋值的这zhidao种情况下,每一行也可以只对部分赋值. a [][3]={1,2,0,1,2,3},这种情况必须对每一个元素赋值,但当元素个数多时不便使用,推荐第一种!!!
于嘉15656856135:
二维数组第二维的长度任何情况下都不可以省吗? -
30185辛送
: 当然不能省略,因为二维数组是由若干个一维数组组成的,在内存中数组是按行存放的,因此,在定义二维数组时必须指定列数.
于嘉15656856135:
C语言数组行和列哪一个可以缺少 -
30185辛送
: 列
于嘉15656856135:
什么是二维数组啊?它的定义是什么?二维数组指的是两行两列的数组吗 -
30185辛送
: 二维数组就相当于excel表格,可以存储m*n个值,并不只是2*2,比如一个6*5的二维数组,就是5行每行6列,可以存储30个值a[6][5],定义时定义成int a[m][n]或者只定义列int a[][n]
于嘉15656856135:
c语言中一个整数(int)二维数组可以设置最多多少行跟多少列 -
30185辛送
:1、理论上没有限制,实际上,计算机有物理内存大小限制,整型数也有最大值的限制.想开大的数组,可以用动态分配.定态数组,作为全局量可以开得大. 2、例如:#include int a[1001][1001]; // 全局量 main(){ a[1000][1000]=1000; printf("%d",a[1000][1000]); return 0; }
于嘉15656856135:
int a[ ][3]={1,2,3,4,5,6,7,8,9,10,11,12};*(&a[1][3])的含义(或值)是 -
30185辛送
: int a[][3]={1,2,3,4,5,6,7,8,9,10,11,12}; //定义了一个4行3列的二维数组 a[1][3] 其实严格来说,这个值是越界的,因为3列,最多只能到a[1][2],不会出现3,但是由于c语言不报错,所以程序还是能执行,至于值和意义,我测试了一下 a[1][3]因为第二行最后一个应该是a[1][2],其实a[1][3]的地址就是a[1][2]的下一个元素,也就是a[2][0],那么 &a[1][3]=&a[2][0] 所以*(&a[1][3])=*(&a[2][0])=7
于嘉15656856135:
二维数组做函数参数时为什么二维的大小不能省,二一维的可以省 -
30185辛送
: c++其实没有二维数组,它就是数组的数组.二维数组是这样组成的a[2],你把a[0]放一个数组,a[1]放一个数组就组成了二维数组.但是它数据还是按顺序排列的. 所以当你的数据存好后,编译器必须得知道你的行或列.才能知道你的内存对应...
于嘉15656856135:
有点不能理解二维数组,二维数组不应该只有两行吗 -
30185辛送
: 二维数组代表的是行、列,平面化的.a[3][3],可以是指三行、三列
于嘉15656856135:
c语言中一维数组为什么一定要对长度定义,不能自动补0而二维数组就可以没有行数长度,自动补0呢? -
30185辛送
: 首先要明确数组的在计算机的分配方式.计算机会分配一块《连续》的内存给数组来使用,这样就可以通过《下标》很方便的访问数组的元素.因此数组的长度就一定是要固定的,因为内存是一直在动态的分配和释放的,如果数组的长度不固定...