根據下列的C語言程式碼,請問輸出結果為何?
```cpp
#include <iostream>
using namespace std;
void swap(int a, int b) {
int tmp;
tmp = a;
a = b;
b = tmp;
}
int main()
{
int x = 4, y = 6;
swap(x, y);
printf(" x=%d, y=%d", x, y);
return 0;
}
```
Ax=6, y=4
Bx=4, y=4
Cx=4, y=6正確答案
Dx=6, y=6
答案與詳解
C
正確答案
C/C++ 函式引數預設為傳值呼叫 (Call by Value),內部變數交換不會影響主程式的原始變數值。
為什麼答案是 C
引數為傳值呼叫,函式內交換的是副本,主程式的 x 與 y 不受影響,維持原值 4 與 6。
考點:傳址呼叫結果考點:錯誤數值考點:傳值呼叫結果
載入中…
完整詳解
Pro · 無限
重點C/C++ 函式引數預設為傳值呼叫 (Call by Value),內部變數交換不會影響主程式的原始變數值。
秒殺技巧
看到引數寫 int a, int b 而非指標或參考,秒判為傳值呼叫,主程式 x 與 y 原封不動。