下列 C 程式執行後的輸出為何? #include <stdio.h> 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; }
A1, 1
B1, 2
C2, 1正確答案
D2, 2
答案與詳解
a 以位址傳入,*a = 1+1 = 2,main 的 a 變成 2;b 以值傳入,函式內 b++ 僅改副本,main 的 b 仍為 1。輸出 2, 1。
