[問題] 指標在 if 中的用法 ?

看板C_and_CPP作者 (報告站長 PTTers 咬我 !)時間15年前 (2010/04/20 21:04), 編輯推噓6(6016)
留言22則, 7人參與, 最新討論串1/2 (看更多)
int a,b,c; int *aa = &a; int *bb = &b; if(*aa=*bb) { c=1; } else{c=0;} 我想判別 aa和bb 有沒有指向同一組記億體. 請問這樣寫對嗎 ? thank U ~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.233.75

04/20 21:05, , 1F
aa==bb?
04/20 21:05, 1F

04/20 21:07, , 2F
我知道 if 中是用 == 判別數值的, 但又覺得好像該用 =
04/20 21:07, 2F

04/20 21:14, , 3F
好像是 if(&aa==&bb) 是嗎 ?
04/20 21:14, 3F

04/20 21:14, , 4F
*aa=*bb 恆成立吧 ...
04/20 21:14, 4F

04/20 21:18, , 5F
我也發現 *aa=*bb 恆成立 , 為什麼 ?
04/20 21:18, 5F

04/20 21:18, , 6F
Bencrie大可以說一下 if(&aa==&bb) 對嗎 ?
04/20 21:18, 6F

04/20 21:25, , 7F
以這例子,&aa, &bb 應該是恆不成立
04/20 21:25, 7F

04/20 21:26, , 8F
如果 a 的值 = b 的值, 則 if(*a == *b) 成立
04/20 21:26, 8F

04/20 21:28, , 9F
要判斷 aa 與 bb 是否指向同一 mem, 1F 正解
04/20 21:28, 9F

04/20 21:31, , 10F
感謝各位,知道怎樣用了.但還是沒明白 QQ
04/20 21:31, 10F

04/20 21:35, , 11F
更正, 如果 a = b,則 if(&aa == &bb) 成立
04/20 21:35, 11F

04/20 22:14, , 12F
== 是compare(equal to), = 是assign, 先搞清楚這點....
04/20 22:14, 12F

04/20 22:15, , 13F
*aa=*bb不見得恆成立, *bb要是值為0的話就....XD
04/20 22:15, 13F

04/20 22:16, , 14F
最後, &aa==&bb 這個case基本上不會成立的....@_@"
04/20 22:16, 14F

04/20 23:08, , 15F
錯 跟本不可能
04/20 23:08, 15F

04/20 23:43, , 16F
有啦, 如果用C++宣告bb為aa(或反過來)的ref就會一樣啦XD
04/20 23:43, 16F

04/21 00:13, , 17F
&aa是指標本身的位置 樓上說的應該是 &aa==bb
04/21 00:13, 17F

04/21 00:30, , 18F
我知道&aa是aa指標的位址, 我的意思是如果bb是aa的
04/21 00:30, 18F

04/21 00:31, , 19F
reference的時候, &aa==&bb會成立, 當然這已經遠超過這
04/21 00:31, 19F

04/21 00:31, , 20F
裡討論的範圍就是; 所以我也說這case &aa==&bb不會成立
04/21 00:31, 20F

04/21 00:32, , 21F
啦~_~ 反而看不懂&aa=bb是typo還是想表達什麼....?_?
04/21 00:32, 21F

04/21 16:03, , 22F
&aa=bb可能是講宣告的時候把aa變成bb的alias吧?!
04/21 16:03, 22F
文章代碼(AID): #1BpQP5nN (C_and_CPP)
文章代碼(AID): #1BpQP5nN (C_and_CPP)