c语言二维数组定义问题求解

c语言二维数组定义问题求解

img

答案选c但我不知道为什么b不对,不是可以省略行吗

省略的条件是必须后面带初始化才行
比如 float a[][4] = {1,2,3,4,5};这样子。没有初始化是不可以的

该回答引用GPTᴼᴾᴱᴺᴬᴵ
在C语言中,二维数组必须在定义时指定所有的维数。因此,选项A和D是错误的。

选项B中,只省略了第一维的大小,而没有省略第二维的大小,所以语法上是正确的。

选项C中,第一维和第二维的大小都被指定了,所以也是正确的。

因此,正确的答案是B和C。

B是为了不确定大小时候的定义,但是定义的时候要初始化内容才行,否则怎么知道你到底申请多少空间

在不初始化的情况下,定义二维数组时候是要规定行和列的,只规定列是不可以的,题主不要和函数的形参搞混,形参只要求二维数组的形式里面要有一个列,可以没有行,题主可以查一下就能明白
如果题主感觉有用,望采纳,谢谢

小魔女参考了bing和GPT部分内容调写:
二维数组定义是指定义一个数组,其中每个元素都是一个数组,这样就可以把多维数据存储在一个数组中。比如说,一个二维数组可以用来存储一个表格,每一行代表一个元素,每一列代表一个属性。

在C语言中,可以使用二维数组来定义一个二维数组,格式如下:

int array[row][column];

其中row代表行数,column代表列数,array是数组的名称。例如,如果要定义一个3行4列的二维数组,可以这样写:

int array[3][4];

定义完二维数组之后,就可以使用array[i][j]来访问数组中的元素,其中i代表行号,j代表列号。例如,array[2][3]就表示访问第3行第4列的元素。
回答不易,记得采纳呀。