=和==有什么区别

您所在的位置:网站首页 雷神dionX7和X7a有什么区别 =和==有什么区别

=和==有什么区别

2024-07-12 10:29| 来源: 网络整理| 查看: 265

在C/C++编程中,我们经常会犯分不清=和==的区别,一个等号表示的是赋值运算符,是赋值的作用,由=右边的值给左边。

而两个等号==是关系运算符,表示的是判断两边的数值是否相等,常常出现在if判断中。

下面给结合一个常见的例子来做分析

如有代码:

#include int main() {     int a=3;     if(a=5)     {         printf("Yes\n");     }     else     {         printf("No\n");     }     return 0; }

按照作者本人的意思,是想判断a的值是不是5,但是发现在a明显不是5的情况下却总输出Yes,经过很久的排查才发现明显少写一个等号,即应该写成a==5即不会发生这样的问题。最诡异的在于少些一个等号竟然不会报错,原因在于写一个等号时候,编译器把a=5当成5来做真假判断,很明显为真,那么必然执行if里的代码。

小技巧:对于if判断中少写一个等号的问题,大家可以尝试将数字写到左边,变量写到右边即5==a,两者完全等价,但可以避免少写等号的问题,想想为什么?

怎么样,这下能区分一个等号和两个等号的区别了吧!



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3