作者HwangTW (谷歌翻譯王)
看板C_and_CPP
標題[問題] cpp中if的==與=差別
時間Tue Jun 9 09:44:52 2020
開發平台(Platform): (Ex: Win10, Linux, ...)
Win10
編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出)
VC++
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
iostream
問題(Question):
if中==與=的差別
餵入的資料(Input):
{ 4,4,5,5,6,6,6,7,7,7,8,8 }
預期的正確結果(Expected Output):
7
錯誤結果(Wrong Output):
11
程式碼(Code):(請善用置底文網頁, 記得排版,禁止使用圖檔)
正確的:
https://glot.io/snippets/fo6kxy21bw
錯誤的:
https://glot.io/snippets/fo75qt5ijj
還請賜教,我還真的不知道為何會有這兩種寫法(汗
補充說明(Supplement):
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.235.252.75 (臺灣)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/C_and_CPP/M.1591667097.A.B05.html
1F:推 nickchen1202: 簡單來說 ==是比較 =是賦值 06/09 10:01
2F:→ mmmmei: ==是真的比較左右一不一樣 =是將右邊賦值予左邊 放在if裡 06/09 10:12
3F:→ mmmmei: 只要右邊不是=0 就都會成立 06/09 10:12
我懂了,大感謝
也就是說會變成if(0)或if(4)之類的東西對吧
※ 編輯: HwangTW (111.235.252.75 臺灣), 06/09/2020 10:15:41
4F:推 qscgy4: 這種問題都可以問…google都有資料吧 06/09 20:48
5F:→ qscgy4: 那我是不是也可以發一篇 ~和!有什麼不一樣? 都是not 06/09 20:50
6F:→ jacky1989: 樓上,不必這樣,每個人一開始都是從新手村開始,重點 06/09 21:58
7F:→ jacky1989: 是有沒有進步,每個人都有不會的地方 06/09 21:58
8F:噓 newking761: 新手連這個都不google...那才是大問題吧,未看先猜con 06/10 00:03
9F:→ newking761: st再問一篇 06/10 00:03
10F:推 Gway: 這是書本基礎歐 請多認真學習書本知識 你的loop 應該由0開始 06/10 03:28
11F:→ Gway: 也是基礎.... 加油 06/10 03:28
12F:推 dces4212: 怕寫錯可以把constant放左邊 編譯時就會告訴你有沒寫錯 06/10 05:05
13F:→ nh60211as: loop從0開始就讀到data[-1]了 06/10 08:23
14F:→ Gway: sorry 我只是想提醒但idx由0開始 06/10 09:12
15F:→ Gway: 一般不太寫由1開始 後面又是小於等於N-1 好嗎? 06/10 09:12
16F:→ kingofsdtw: priavete : operater == 06/10 10:15
17F:→ kingofsdtw: 我開始知道為何要鎖住了 06/10 10:16
18F:→ loveme00835: 這兩者的差別在於 overload 的形式, 看到 operator=( 06/10 10:43
19F:→ loveme00835: ) on primitive type 你完全可以確定被呼叫的實體是 06/10 10:43
20F:→ loveme00835: 哪個, 但是 operator==() 你就要同時考慮兩個運算元, 06/10 10:43
21F:→ loveme00835: 要判斷被呼叫的實體是哪個就需要更多資訊才行 06/10 10:43
22F:推 stupid0319: 推,長知識了 06/10 12:30
23F:推 NCKUchemRx: 推推好問題,魔鬼藏在細節裡 06/12 10:00