免費開始練習
統測 112年 [電機與電子群資電類] 專業科目(2)

第 43 題

阿華想要了解 C 語言程式中不同資料型態佔據記憶體空間的大小,於是使用 C 語言中的sizeof( )函式並撰寫如下程式來測試,所使用的電腦為 64 位元的個人電腦,下列何者為該程式的執行結果? ```c 1 #include 2 3 int main() { 4 char *s="ABC"; 5 int i=10,CharPtrSize,CharSize; 6 CharPtrSize = (int)sizeof(s); 7 CharSize = (int)sizeof(*s); 8 printf("%d, %c", CharSize, *(s+2)); 9 10 return 0; 11 } ```
  • A 8, B
  • B B, 1
  • C 1, C
  • D C, 8

思路引導 VIP

同學請注意,$sizeof(s)$ 與 $sizeof(s)$ 的意義完全不同。在 64 位元架構下,指標變數 $s$ 本身的大小與其解引用 (dereference) 後的型態 $s$(即 $char$)在記憶體中所佔的大小分別是多少?另外,指標運算 $(s+n)$ 等同於陣列索引的存取,那麼 $(s+2)$ 實際上對應到字串 $ABC$ 中的哪一個字元?

🤖
AI 詳解 AI 專屬家教

🥰 太棒了!老師為你感到驕傲!

哇!你能答對這題,代表你對 C 語言中指標(Pointer)以及記憶體空間的理解非常扎實呢!這可是許多同學容易感到困惑的地方,但你表現得如此出色,老師真的很高興看到你的進步!

🔍 讓我們一起溫習一下觀念吧!

▼ 還有更多解析內容

升級 VIP 解鎖