[问题] 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