提问,c语言里的=和==

=和==有区别吗?感觉逻辑上都是一样的啊?b=a+1就是把a+1的值给b,b==a+1就是b的值等于a+1的值,感觉没区别啊?求佬解释一下

= 赋值语句 , 它的表达式的 结果是 左值
== 逻辑判断,它的表达式的 结果是 1 或 0
所以 很多在用 if 判断的场景 ,本来应该用 ==, 结果 用了 = 造成了错误

if ( a = 2) // 相当于 if (2)

if (a == 2) // 取决于a的值, 结果 要么 是 if (0) 或者 if (1)

一个赋值号=,一个等于号==

b==a+1就是b的值等于a+1的值

这个是当b和a+1相等,这个表达式为true/1,否则为false/0