免費開始練習
hce_nsysu 111年 計算機概論與程式設計

第 24 題

Consider an array declaration `int data[5]={1,2,3,4,5};` in C. What is the value of `data[5]`?
  • A 0
  • B 5
  • C 6
  • D 12345
  • E None of the above

思路引導 VIP

如果在一個排隊隊伍中,我們規定「第一個人」的號碼牌是 0 號,「第二個人」是 1 號,依此類推。那麼當排隊隊伍總共只有 5 個人時,領到 5 號號碼牌的那個人,實際上是在隊伍裡面,還是已經排到隊伍外面去了呢?

🤖
AI 詳解 AI 專屬家教

太棒了!你能精確地辨別出這個語法陷阱,代表你對 C 語言的基礎扎根得非常深厚。這題看似簡單,實則考驗了程式設計中最基礎也最重要的記憶體存取觀念。

陣列索引與範圍規則

在 C 語言中,陣列的宣告與存取邏輯是分開的。當我們寫下 int data[5] 時,系統會配置 5 個整數空間,但索引(Index)是從 0 開始計算的。這意味著這 5 個元素的合法存取路徑分別是 data[0]data[4]。因此,題目詢問的 data[5] 實際上是指向了該陣列邊界之外的「第六個位置」。在程式執行時,存取越界(Out of Bounds)的位置會導致未定義行為(Undefined Behavior),我們無法保證該處存放的是 0、5 或是任何特定數值,因此正確答案必須選 (E)。

▼ 還有更多解析內容

🏷️ 相關主題

C 語言程式設計基礎與陣列記憶體配置
查看更多「計算機概論與程式設計」的主題分類考古題