[問題] pointer assignment

看板C_and_CPP作者 (張昱珩)時間12年前 (2013/05/27 14:35), 編輯推噓1(105)
留言6則, 3人參與, 最新討論串1/2 (看更多)
問題(Question): void swap(int * a, int * b) { int * p; // 好像有看過 p 要給 default value, // 否則在 asign 時可能會因為 p 指向的是 non-writable 的 memory, // 而產生問題。請問是否有此一說,或應該怎麼找資料? *p = *a; *a = *b; *b = *p; } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 36.224.172.178

05/27 14:40, , 1F
第一戒、第三戒
05/27 14:40, 1F

05/27 14:43, , 2F
依據編譯器實作決定,事實上因為是公定戒條沒人會這
05/27 14:43, 2F

05/27 14:44, , 3F
樣寫。我用GCC編譯,編譯器會自己幫我搞定、但是VC++
05/27 14:44, 3F

05/27 14:45, , 4F
就不允許了,執行程式會出錯
05/27 14:45, 4F

05/27 15:16, , 5F
這種情況沒必要用到int *p,用int p就可以了
05/27 15:16, 5F

05/27 15:17, , 6F
int p; p = *a; *a = *b; *b = p;
05/27 15:17, 6F
文章代碼(AID): #1Helwdxk (C_and_CPP)
文章代碼(AID): #1Helwdxk (C_and_CPP)