这个代码没有上下文不好说的太绝对,不过如果这是你看到的能正确运行结果的代码,那么应该是这样理解。
先赋值,再执行一个if语句,不过,这样的写法真是不好,如果是我,我就说它是错误的。
你可以运行一下下面的代码就想清楚了。#include
int main()
{
int a = 1 ;
int b = 2 ;
if(a=2)
{
b==a?printf("a=2"):printf("a=1");
}
return 0 ;
}
~
~
~
~
~
~
~
~
~
~
~
~
:set nonu 1,1 全部
合法
if(a=5)
等价于
a=5;
if(a)
c语言语法很灵活,虽然这样做没错,但因为不易读懂,不提倡。
不会出错,其结果永远是1,if判断总是正确,同时也把a赋值为5
你说的是if(a==5)吧?判断a是否和5相等