地特四等申論題
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)。
▼ 還有更多解析內容