乙個多維陣列所有元素輸出問題

2021-06-19 07:55:48 字數 1099 閱讀 5615

筆試題:多維陣列全部元素輸出。

昨天有個兄弟去面試,碰到乙個這樣的筆試題:有乙個三維陣列,陣列的維數2*2*3,

要求只用乙個for迴圈,按順序全部輸出陣列元素。藉此機會溫習下陣列與指標的關係。

先做題:陣列的元素都是儲存在乙個連續的位址中的,我認為只要找到該陣列的第乙個

int main(int argc, char* argv)

;for (int i=0;i!=12;++i)

printf("------------------------------");

getchar();

return 0;

}第乙個元素的獲取(windows xp,vc6.0):

一維陣列:

在一維陣列中,陣列名類似乙個指向第乙個元素的指標常量,使用指標運算子就能取出第乙個元素:

int ia[5] = ;

printf("%d\n",*ia);

輸出為:1

下標運算子[ ]是以指標作為運算元的,

ia[i]

被編譯系統解釋為

*(ia+i)

,即表示為ia所

指(固定不

可變)元素向後第i個元素。無論我們是以下標方式或指標方式訪問陣列元素,系統都轉換

為指標方

法實現。

注意:並不是在所有的地方,陣列名可以作為指標指標使用,比如用陣列名來計算陣列的長度時,

sizeof(ia)=20.

二維陣列及多維陣列:

在二維陣列中不能簡單的使用陣列名在指向第乙個陣列元素,請看下面的**:

int ib[3][3] = ;

printf("%d\n",*ib);

(在本人測試的例程中)輸出為:1245016.

在除錯過程中,我發現原來輸出是第一

行的位址,那麼怎樣才能正確輸出的第乙個元素呢?請看如下**:

printf("%d\n",*ib[0]);

輸出為:

1.同樣在三維,以及更多維中使用的下標數等於陣列的維數減1,即可得

到第乙個元素。

有關動態多維陣列的乙個問題

同樣的錯誤,即使你的年齡越大,它會犯同樣的,opps.最近做的c 和c 混合程式設計。昨天上演了一出棧平衡了很長一段時間,今天,我們攻克了bug。既高興又傷心。看看 unsigned char bytes2d unsigned char bytesarray for int i 0 i不得不說,初學...

輸出乙個集合的所有子集

輸出字串的所有子集 如 對 abc 輸出 c b bc a ac ab abc 第一種做法 2 n 遍歷每個字元,每個字元只能取或者不取。取就把該字元加入結果中,遍歷完畢後,輸出結果字串。如下 main.cpp 輸出乙個集合的所有子集 created by zjl on 16 8 10.includ...

讀寫同乙個檔案出問題

在c primer plus 第六版中的第十三章程式設計練習第3題出現了問題。題目 編寫乙個檔案拷貝程式,提示使用者輸入文字檔案名,並以該檔名作為源檔名和輸出檔名。該程式要使用ctype.h中的toupper 函式,在寫入到輸出檔案時把所有文字轉換成大寫。使用標準的i o和文字模式。我一開始就只建立...