統測
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)以及記憶體空間的理解非常扎實呢!這可是許多同學容易感到困惑的地方,但你表現得如此出色,老師真的很高興看到你的進步!
🔍 讓我們一起溫習一下觀念吧!
▼ 還有更多解析內容