作者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/cn.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