//我举个例子你就明白了
//赋值运算符=运算优先级是从右到左,然后看下面代码
int a,b;
b = (a=1);
//编译器编译得到如下代码:
mov DWORD PTR _a$[ebp], 1
mov eax, DWORD PTR _a$[ebp]
mov DWORD PTR _b$[ebp], eax
①a=1
②b=a
如此推断,(a=1)的值即a的值,而a的值为1
所以if(1)不用说了,非零成立.
那么if(a=1)也不用说了吧? 表达式的值是a,而a=1,相当于if(1),非零成立.
表达式正确的情况下,只要不等于0;if语句即成立,例如if(0) printf("aa");就不会输出aa如果是if(1>0)表达式即成立,即输入aa
C语言中常量或赋值语句作为条件语句时:0表示false,!0表示true;
eg : int a=0; if(a){ } -->表示false,只要当a不为0时表示true
比如这个,用常量可以做个无限循环。while (1){ //---------} 现在看不到它有什么意义,但在真正用的地方就有意义了。
常量或赋值,只要值不为0,都是true,0为false