免費開始練習
地特四等申論題 106年 [資訊處理] 程式設計概要

第 二 題

二、試問下列 C++程式碼的輸出為何?(25 分) #include using std::cout; using std::endl; int main() { int a[10][20][30][40]; cout<<"a="< 📝 此題為申論題

思路引導 VIP

本題考查多維陣列的記憶體佈局與指標運算(Pointer Arithmetic)。解題關鍵在於判斷陣列名稱退化(Decay)後的指標型態,以及該指標所指向的資料型別大小。指標相減的結果為兩個記憶體位址之間相距的「元素個數」,而非直接的位元組(Bytes)差。

🤖
AI 詳解 AI 專屬家教

【解題思路】利用 C++ 中多維陣列退化為指標的特性,以及「指標相減 = 位址差 / 所指型別大小」的原理來計算兩者之間的距離。 【詳解】 已知陣列宣告為 int a[10][20][30][40];,其在記憶體中為連續儲存的區塊(列優先順序 Row-major order)。

▼ 還有更多解析內容

升級 VIP 解鎖