[問題] 字串用 char[] 跟 char* 的比較

看板C_and_CPP作者 (總會有辦法的)時間14年前 (2009/08/31 20:38), 編輯推噓1(104)
留言5則, 2人參與, 最新討論串1/2 (看更多)
之前在看一些C的常見問題 看到這段程式碼 char str1[] = "abc"; char str2[] = "abc"; const char str3[] = "abc"; const char str4[] = "abc"; const char *str5 = "abc"; const char *str6 = "abc"; char *str7 = "abc"; char *str8 = "abc"; cout << ( str1 == str2 ) << endl; cout << ( str3 == str4 ) << endl; cout << ( str5 == str6 ) << endl; cout << ( str7 == str8 ) << endl; 結果是 0011 可是不知道為什麼 囧 有大大可以幫忙解析一下嗎 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.169.99.105

08/31 20:46, , 1F
你只是拿指標來比有沒有相同, 不是比較字串有沒有一樣
08/31 20:46, 1F

08/31 20:47, , 2F
字串比對請用strcmp, 結果會是0011亦或是0000都有可能
08/31 20:47, 2F

08/31 20:47, , 3F
全看編譯器實作如何
08/31 20:47, 3F

08/31 20:48, , 4F
他列的這些問題應該不是要做strcmp, 而是比對不同宣告方
08/31 20:48, 4F

08/31 20:49, , 5F
式的情況下, 其指標/占用記憶體空間的差異吧我猜....:)
08/31 20:49, 5F
文章代碼(AID): #1AcyHIVP (C_and_CPP)
文章代碼(AID): #1AcyHIVP (C_and_CPP)