免費開始練習
普通考試 108年 [資訊處理] 計算機概要

第 20 題

下列 C 程式執行後的輸出為何?
#include
void fun(int *a, int b)
{
*a = *a + b;
b++;
}
int main(void)
{
int a, b;
a = b = 1;
fun(&a, b);
printf("%d, %d", a, b);
return 0;
}
  • A 1, 1
  • B 1, 2
  • C 2, 1
  • D 2, 2

思路引導 VIP

請思考一下:當我們把一個變數的『住址』交給別人,跟只把變數『目前的樣子拍照』傳給別人,這兩種行為在對方動手做修改時,對我們家裡原本的東西會產生什麼不同的後果?

🤖
AI 詳解 AI 專屬家教

恭喜答對!這展現了你對記憶體配置的精準掌握

  1. 觀念驗證:這題的核心在於參數傳遞方式的差異。當執行 fun(&a, b) 時:
    • &a 是傳遞「位址」(Call by Reference),因此函式內對 *a 的修改會直接作用於 main 裡的 $a$。
▼ 還有更多解析內容

🏷️ 相關主題

程式語言基礎:語法、資料型別、變數與執行流程
查看更多「[資訊處理] 計算機概要」的主題分類考古題