Re: [問題] swap兩個元素的方法
關於整數swap,根據置底的文章誡條,看來
x^=y^=x^=y; 的寫法是不可以的。
那請問加上括號寫成 x ^= ( y ^= ( x ^= y ) );
依然有運算元一樣,是不是也是錯誤呢?
看來只要運算元不一樣就OK
拜讀了版上高手文章
"4/11 LPH66 R: [問題] 請教如何只用x,y兩變數來交換彼此數值"
不知道加了括號會不會改變情況?(好像不會)
雖然實際上我都用 std::swap,
還是想請教各位一下,
感恩啊!
※ 引述《nana0130 (小那)》之銘言:
: 遇到的問題: (題意請描述清楚)
: swap 兩個數值
: 可以這樣寫
: void swap(int *a, int *b) //交換a跟b指向位置的值
: {
: int temp;
: temp = *a;
: *a = *b;
: *b = temp;
: }
: 還有什麼別的方法嗎 ?
: 為什麼不能傳值到function 裡面去作交換
: void swap(int a, int b) //交換a跟b指向位置的值
: {
: int temp;
: temp = a;
: a = b;
: b = temp;
: }
: 我試的結果是 swap裡面 是交換了
: 但是回去 main 之後,卻仍沒交換~~
: 這是為什麼?
: 為什麼 一定要用傳位址~~
: 希望得到的正確結果:
: 程式跑出來的錯誤結果:
: 開發平台: (例: VC++ or gcc/g++ or Dev-C++, Windows or Linux)
: 有問題的code: (請善用置底文標色功能)
: 補充說明:
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 123.110.143.76
推
01/04 23:07, , 1F
01/04 23:07, 1F
→
01/04 23:08, , 2F
01/04 23:08, 2F
→
01/04 23:08, , 3F
01/04 23:08, 3F
→
01/04 23:10, , 4F
01/04 23:10, 4F
推
01/05 01:27, , 5F
01/05 01:27, 5F
→
01/05 01:30, , 6F
01/05 01:30, 6F
推
01/05 02:56, , 7F
01/05 02:56, 7F
推
01/05 11:01, , 8F
01/05 11:01, 8F
討論串 (同標題文章)