民國103年 第3梯次 儀表電子甲級 學科

第32題

在C 語言中,a [ 10 ] 是10 個整數的陣列,下列何者的指標( p o i n t e r ) 使用有誤?

題目

在C 語言中,a [ 10 ] 是10 個整數的陣列,下列何者的指標( p o i n t e r ) 使用有誤?

  1. (1) * a +
  2. (2) * a
  3. (3) * a [ 1 ]
  4. (4) * ( a + 1 )

官方答案

(3) * a [ 1 ]

解析

陣列名稱a在運算式中會退化為指向第一個元素的指標,所以*a等同a[0],*(a+1)等同a[1],兩者都是正確的取值寫法。*a[1]則因下標運算子[]優先權高於*,會先取出a[1]這個int值,再對整數做間接運算(dereference),語法與型別都不合法,編譯會產生錯誤,故為錯誤的指標用法。

AI 參考解析(推得答案已與官方答案比對一致),非官方公告內容,僅供備考參考。

官方資料