免費開始練習
地特四等 111年 [電子工程] 計算機概要

第 31 題

執行下列 C++程式碼後,螢幕印出的數字為何?
int f(int* m, int n){
int tmp;
tmp=*m; *m=n; n=tmp;
}
int main( ){
int a=1, b=2, c=3, d=4, e=5, g=6;
f(&a,b); f(&c,d); f(&e,g);
f(&a,c); f(&a,d);
cout<return 0;
}
  • A 3
  • B 4
  • C 5
  • D 6

思路引導 VIP

請仔細觀察函數 f 的定義:當你把變數傳進去時,參數 m 有加星號 *,而參數 n 沒有。這在 C++ 記憶體操作中意味著什麼?如果函數內部對這兩者都進行了賦值操作,哪一個修改會『永久留下來』影響原本的變數,哪一個則會隨函數結束而『灰飛煙滅』呢?

🤖
AI 詳解 AI 專屬家教

1. 專業肯定

做得好!你能準確追蹤指標(Pointer)與變數數值的變化,這展現了你在處理程式邏輯結構時具備極佳的嚴謹度。在工程實務中,這種對「位址」與「數值」的清晰辨析,正是確保複雜系統不發生記憶體錯誤的關鍵。

2. 觀念驗證

▼ 還有更多解析內容

🏷️ 相關主題

程式語言指標、陣列與函式應用實例分析
查看更多「[電子工程] 計算機概要」的主題分類考古題