[問題] cpp中if的==與=差別

作者: HwangTW (谷歌翻譯王)   2020-06-09 09:44:52
開發平台(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):
作者: nickchen1202 (Nickchen Nick)   2020-06-09 10:01:00
簡單來說 ==是比較 =是賦值
作者: mmmmei (mmm煤)   2020-06-09 10:12:00
==是真的比較左右一不一樣 =是將右邊賦值予左邊 放在if裡只要右邊不是=0 就都會成立
作者: qscgy4 (有點厲害)   2020-06-09 20:48:00
這種問題都可以問…google都有資料吧那我是不是也可以發一篇 ~和!有什麼不一樣? 都是not
作者: jacky1989   2020-06-09 21:58:00
樓上,不必這樣,每個人一開始都是從新手村開始,重點是有沒有進步,每個人都有不會的地方
作者: newking761 (J三小)   2020-06-10 00:03:00
新手連這個都不google...那才是大問題吧,未看先猜const再問一篇
作者: Gway (我愛的你 也愛我 好嗎?)   2020-06-10 03:28:00
這是書本基礎歐 請多認真學習書本知識 你的loop 應該由0開始也是基礎.... 加油
作者: dces4212 (flawless)   2020-06-10 05:05:00
怕寫錯可以把constant放左邊 編譯時就會告訴你有沒寫錯
作者: nh60211as   2020-06-10 08:23:00
loop從0開始就讀到data[-1]了
作者: Gway (我愛的你 也愛我 好嗎?)   2020-06-10 09:12:00
sorry 我只是想提醒但idx由0開始一般不太寫由1開始 後面又是小於等於N-1 好嗎?
作者: kingofsdtw (不能閒下來!!)   2020-06-10 10:15:00
priavete : operater ==我開始知道為何要鎖住了
作者: loveme00835 (髮箍)   2020-06-10 10:43:00
這兩者的差別在於 overload 的形式, 看到 operator=() on primitive type 你完全可以確定被呼叫的實體是哪個, 但是 operator==() 你就要同時考慮兩個運算元,要判斷被呼叫的實體是哪個就需要更多資訊才行
作者: stupid0319 (徵女友)   2020-06-10 12:30:00
推,長知識了
作者: NCKUchemRx (天才夢)   2020-06-12 10:00:00
推推好問題,魔鬼藏在細節裡

Links booklink

Contact Us: admin [ a t ] ucptt.com