不理解x=1和x=2什么怎么回事

#include <stdio.h>
int main(void)
{ int x=0;
if(x=2)
printf("OK");
else if(x<2) printf("%d\n",x);
else printf("Quit");

return 0;

}
输出 OK

C语言中一个等号是赋值,两个等号才是相等的!

题主代码存在一个我之前常出现的问题。
if语句内是逻辑判断,逻辑判断是用“==”或者“!=”,而“=”是赋值,把右边的赋值给左边。

你这是赋值 x=2赋值条件肯定满足啊 不输出ok输出啥 进了第一个if分支后面肯定就不会进了啊

一般if()括号里面写的是逻辑判断,你写x=2 是赋值,这个永远为真

这有什么关系吗,你都int x=0

=就是赋值的意思
==就是数学的等于
第一个, 0赋值与x
应该是
if x==2
判断x==2

if(x==2) 这里应该是比较运算符。