=和==有什么区别 |
您所在的位置:网站首页 › 雷神dionX7和X7a有什么区别 › =和==有什么区别 |
在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 |