農會 資訊管理類程式設計110 年第 23 題單選題
在C語言程式中,int A[2][3]={1, 2, 3, 4, 5, 6}; cout<< **(A+1); 其輸出為何?
D正確答案
二維陣列指標運算,**(A+1) 等同於 A[1][0]。A[1][0] 為第二列首元素,取值為 4。
為什麼答案是 D
**(A+1) 等同於 A[1][0],指向第二列第一個元素,其值為 4,為本題正解。
考點:指標運算考點:二維陣列指標
載入中…
完整詳解
Pro · 無限重點 二維陣列指標運算,**(A+1) 等同於 A[1][0]。A[1][0] 為第二列首元素,取值為 4。
秒解技巧:**(A+i) 直接轉為 A[i][0]!本題 i=1,故為 A[1][0],對應陣列中的數字 4。
逐選項分析
A指標運算✕
**A 或 A[0][0] 的值,對應陣列第一列第一個元素,輸出為 1。
B指標運算✕
*(*A+1) 或 A[0][1] 的值,對應陣列第一列第二個元素,輸出為 2。
C指標運算✕
*(*A+2) 或 A[0][2] 的值,對應陣列第一列第三個元素,輸出為 3。
D二維陣列指標✓ 正確
**(A+1) 等同於 A[1][0],指向第二列第一個元素,其值為 4,為本題正解。
二維陣列指標運算對照表
| 指標寫法 | 陣列寫法 | 對應值 |
|---|
| **A | A[0][0] | 1 |
| *(*A+1) | A[0][1] | 2 |
| **(A+1) | A[1][0] | 4 |
| *(*(A+1)+2) | A[1][2] | 6 |
考生常誤以為 A+1 只移動一個元素,但二維陣列名 A 的型別是「指向列的指標」,A+1 會跳過一整列(3個int),直接指向第二列首元素 A[1][0]!