正文
c语言2维数组可以缺省行吗,c语言二维数组必须有哪个下标
小程序:扫一扫查出行
【扫一扫了解最新限行尾号】
复制小程序
【扫一扫了解最新限行尾号】
复制小程序
在c语言的2维数组中,为什么可以省略第一维,不能省略第二维啊??_百度...
1、有初始化的时候,第二维的数字代表分配内存的长度,第一维的数字代表分配内存倍数;倍数可以让机器去数,但长度没有的话就不好开辟空间了。
2、将二维数组当作参数的时候,必须指明所有维数大小或者省略第一维的,但是不能省略第二维或者更高维的大小,这是由编译器原理限制的。因此,可以省略第一维的维数,不能省略其他维的维数。
3、如果对二维数组中全部元素初始化,则定义数组时第一维的长度可以省略,但第二维的长度不能省略。
4、结果与写int a[3][3]={ {1,2,3},{4,5,6},{7,8,9} };是一样的 省掉的部分由编译器自动帮你填上了而已。
5、因此只有高位数组的第一维可以省略(例如省略了m无关紧要,可是省略了n那可大大不妙了)。
6、第一个维数也不是都可以省略的。只有在写明第二维的大小,并同时为二维数组初始化时,才能省略第一维的大小。
C语言中二维数组的定义问题
二维数组定义的一般形式是:类型说明符 数组名[常量表达式1][常量表达式2]其中常量表达式1表示第一维下标的长度,常量表达式2 表示第二维下标的长度。
二维数组定义的一般形式是:dataType arrayName[length1][length2];其中,dataType 为数据类型,arrayName 为数组名,length1 为第一维下标的长度,length2 为第二维下标的长度。
二维数组的第一个维度缺省是:举个例子:int tar[][2] = {1,2,3,4};因为大括号中有4个元素,而且第二个维度是2,所以就可以计算出来第一维度是所以是可以缺省的。
…}这样定义,而不能定义a[3][]={*,*,*……}。
A) int a[ ][3]; -- 语法错,没带初始化,不允许用 [空白],不允许 数组大小不定。B) int a[ ]={2*3} -- 正确定义了数组,是一维数组,数组元素只有1 个,初始化数值为 2*3 ,就是 6。
c语言二维数组省略了行怎么知道行为多少?
1、二维数组的行列数在定义的时候就是确定好的,所以编程人员是知道二维数组的大小以及行列数的。 所以可以直接使用行列数的值。为方便维护,可以将行列数定义为宏,直接调用对应的宏名作为行列值。2 动态获取。
2、行数 = sizeof(array)/sizeof(array[0]);列数 = sizeof(array[0])/sizeof(array[0][0]);你也可以在函数形参里加入行列值,然后主函数调用子函数的时候,把行列数做为参数传过去。
3、是的这样是错误的,因为c不支持动态数组。要么定义一个足够大的数组,要么用链表结构。
4、定义时有初值,可以省略行数,但不能省略列数。其实,对计算机而已没有所谓的二维数组。就是一维数组,可以理解为它的一个元素就是一行(行指针)。所以需要确定跨度(也就是一行的列数)。
5、但是行列都不制定就不可以了,比如我初始化了6个元素,即可以是a[2][3]也可以是a[3][2]也可以是a[1][6],会发生歧义,是不允许的。
C语言字符串二维数组引用可以省略列下标吗?
代码语法上是没有问题的。(1)c语言的二维数组的每一行都可以看成一个一维数组,如书上的name就可以看成5个一维数组组成的。如果数组恰好定义成char类型,那这些一维数组又可以看成字符串。
定义时有初值,可以省略行数,但不能省略列数。其实,对计算机而已没有所谓的二维数组。就是一维数组,可以理解为它的一个元素就是一行(行指针)。所以需要确定跨度(也就是一行的列数)。
二维数组“行”可以省略,“列”不可以省略。二维数组本质上是以数组作为数组元素的数组,即“数组的数组”,类型说明符数组名[常量表达式][常量表达式]。二维数组又称为矩阵,行列数相等的矩阵称为方阵。
正确答案如下:选C。首先B,D是错的。二维数组的列下标不能省略,行下标可以省略,所以A是错的。 选C。A,B,D三种形式都不正确。 选D。 选C。题目中的二维数组列下标是3,行下标不确定。
数值不指定下标的话,可以让c语言通过初始化的形式自己数需要多少下标。
实际上,对于c/c++语言而言,不能在同时省略行下标和列下标的情况下,对二维数组进行初始化。列下标不能省略,而行下标是可以的。
在c语言二维数组中,a【0】为什么是第一行的第一个元素,列不是不能...
1、这是错误的认识。在C语言中,若a声明为二维数组,则a[0]所代表的是一个地址,指向a[0][0]处,而不是元素。
2、a表示整个数组的首地址,a[0]是第一行这个数组的首地址 &a[0][0]这个表示第一个元素的地址 如a[0],这个表示第一行的所有元素。
3、就是这个意思,这里c是一个二维数组,双0指得是这个数组第一个元素,如果写成矩阵的形式,正是第一行第一列的元素。
4、二维数组取第一列a[0][i],是这种写法。a[0] 它是一维数组的写法。如果是二维的话,它代表着这一行数组,它是个数组,非数。
5、不可以第维和第维的长度都不指定。少指定第维的长度。
关于c语言2维数组可以缺省行吗和c语言二维数组必须有哪个下标的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。