免費開始練習
高考申論題 105年 [資訊處理] 程式語言

第 五 題

五、請問下列 C 語言程式碼執行後輸出結果為何?(20 分) int main(){ double d[10][20][30][40]; printf("%d\n", (int) sizeof(d[1][5])); printf("%d\n", (int) sizeof(d[1][5][20])); printf("%d\n", (int) (d - &d[3])); printf("%d\n", (int) (d[3][4] - d[5][8])); }
📝 此題為申論題

思路引導 VIP

遇到多維陣列與指標算術,首要釐清 sizeof 的運算對象是否因傳遞而退化為指標,並確定其代表的維度與實體大小。接著分析指標減法的型別與步長,謹記同型別指標相減的結果是兩者相差的「元素個數」,而非實體記憶體位元組數。

🤖
AI 詳解 AI 專屬家教

【解題思路】利用 C 語言多維陣列的記憶體連續性特性,判斷 sizeof 的作用域,以及計算相同型別指標相減所代表的元素跨度(步長)。 【詳解】 已知:假設在主流 32/64 位元編譯環境下,double 型別大小通常為 8 bytes。陣列宣告為 double d[10][20][30][40];,其在記憶體中配置為連續的一維區塊。

▼ 還有更多解析內容

📝 同份考卷的其他題目

查看 105年[資訊處理] 程式語言 全題

升級 VIP 解鎖