84669인 학습
152542인 학습
20005인 학습
5487인 학습
7821인 학습
359900인 학습
3350인 학습
180660인 학습
48569인 학습
18603인 학습
40936인 학습
1549인 학습
1183인 학습
32909인 학습
d选项为什么是正确的,答案是c,AB选项可以理解
学习是最好的投资!
只说一句: 数据的初始化 按行,一行一行的初始化, 我可以不知道有多少行, 但是我必须知道一行放几个数据(也就是有几列), 这是二维, 然后扩展3维, 我可以不知道有几页数据,但是我必须知道一页数据存储几行几列.
---华丽分割线---
大于等于二维的,第一个都可以省略. 其他的都不可以省略. 第一个不一定是行数. 只是打个比喻,这么理解容易记忆.
就像你有一些 麻将, 按行来排列. 你只需要知道一行放几个(几列), 就可以知道放几行. (2维) int arr[行数][5]; 如果知道了行和列, 你就能推算出放几层了. (3维) int arr[层数][5][5]; 如果知道了行,列,层, 我就能知道放几堆了. (4维) int arr[堆数][5][5][5]; 如果知道了行,列,层,堆, 我就能推算出可以放在几张桌子上了.(5维) int arr[桌子数][5][5][5][5]; 如果知道了行,列,层,堆,桌子的张数, 我就能推算出, 我要用几间屋子来存放了.(6维) int arr[屋子][5][5][5][5][5]; ... 数字化之后: int arr[n-1]...[6][5][4][3][2][1][0]; n-1下标是可以省略的.其他都不可以;
掌握方法,学会类推,比什么都重要;别死记答案.
C选项为什么错你应该知道吧?我就直接说D选项了,在C语言中,多维数组用这两种方式初始化是等效的,
int a[3][4] = { {0, 1, 2, 3} , {4, 5, 6, 7} , {8, 9, 10, 11} };
和
int a[3][4] = {0,1,2,3,4,5,6,7,8,9,10,11};
对于多维数组的初始化,我们根本不需要这么多花括号。在《C和指针》第162页作者有指出,用花括号只是为了好识别罢了,直接上图。
二维数组的声明并赋值的时候必须指定第二维的长度, 第一维可以省略
只说一句: 数据的初始化 按行,一行一行的初始化, 我可以不知道有多少行, 但是我必须知道一行放几个数据(也就是有几列), 这是二维, 然后扩展3维, 我可以不知道有几页数据,但是我必须知道一页数据存储几行几列.
---华丽分割线---
大于等于二维的,第一个都可以省略. 其他的都不可以省略. 第一个不一定是行数. 只是打个比喻,这么理解容易记忆.
掌握方法,学会类推,比什么都重要;别死记答案.
C选项为什么错你应该知道吧?我就直接说D选项了,在C语言中,多维数组用这两种方式初始化是等效的,
和
对于多维数组的初始化,我们根本不需要这么多花括号。在《C和指针》第162页作者有指出,用花括号只是为了好识别罢了,直接上图。
二维数组的声明并赋值的时候必须指定第二维的长度, 第一维可以省略