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頁作者有指出,用花括號只是為了好辨識罷了,直接上圖。
二維數組的宣告並賦值的時候必須指定第二維的長度, 第一維可以省略