27 下列為一個 C++語言的副程式,用來交換輸入的變數值:5c1b39ab4790b.jpg 若於主程式內宣告兩個變數int m=3, n=2; 則主程式中應如何呼叫swap副程式才能正確在主程式執行完後 m=2, n=3?
(A)swap(m,n) 
(B)swap(&m,n) 
(C)
  swap(m,&n)
(D)
swap(&m,&n) 

答案:登入後查看
統計: A(32), B(89), C(245), D(100), E(0) #1915924

詳解 (共 5 筆)

#3290580
由於要讓帶入值成功交換所以為傳址跟傳參照...
(共 259 字,隱藏中)
前往觀看
15
0
#5616820
來科普一下
因為 函數std::swap(是C++標準模板庫(STL)中的內置函數,該函數交換兩個變量的值。
所以理所當然swap(m, n)也可以使用



要測試就要另外取新的函數名稱
(這邊命新的名字change)

版本 1. 沒傳址 or 參考

不會交換

版本 2. m傳參考 , n傳址

有交換

那麼(A)(B)(D)的答案都會報錯就不一一貼上來了
若有錯誤歡迎指教:)
6
0
#3446726

to 2F

你可以把副程式swap的名字改成其他的甚至刪除,swap也能正常運作

因為已有swap(int &X,int &Y)的副程式,所以你才能用.不然應該會跳錯


5
1
#3275970

經驗證

(A) swap(m,n) 也會置換阿..

5ca46c7080e01.jpg#s-655,539

4
0
#3172072
題目選項有錯, D選項沒有內容
(共 17 字,隱藏中)
前往觀看
3
0