编程规范中能体现出一点区别, if(2
==
a)比if(a
==
2)安全,即若把==误写为=,if(2
=
a)在编译阶段就能发现语法错误,而if(a
=
2)无明显语法错误,属于逻辑错误,很难被发现。
这是是判断scanf的返回值,你可以查看一下scanf函数的详细解说,不过一般不用这个返回值罢了。给你说明白点,这里让你输入两个整形,如果你输入了两个整形那scanf的返回值就等于2,如果你输入了一个整形另一个其它类型scanf的返回值就是1,如果你两个都不是输入正新就返回0,说白了scanf的返回值就是你输入类型正确的个数。
你这个题的意思就是if判断,当你输入的两个数都是整形的时候执行以下代码。
希望对你有帮助
编译应该会有警告把if(a=2),这里应该是一个==的,而你写成了=
在C语言里=是赋值符号
if(a=2), 而a=2这个赋值是恒成立的 所以相当于if(1)
if((a=2)||(b=1)) 类似
大部分编译器会提示警告的,而很多人说警告可以不理会的,这就容易忽略这类警告了,
我的做法是写成 if((2==a)||(1==b)) ,这时候再把==写成= 就是错误而不是警告了,