今天在某坛子里看到一个坛友发的一个问题,源程序如下:
cpp代码
- #include "stdio.h"
- main()
- {
- int x=1;
- if(x=2)
- printf("ok\n");
- else if (x<2)
- printf("%d\n",x);
- else printf("quit");
- }
初始看上去貌似没什么问题,自己看一下问题还是有的:
c语言在执行if语句的时候,先对表达式的值求解,如果表达式的值为0,则按“假”处理,如果表达式的值非0,则按“真”处理。
在执行你提供的语句过程种,先执行的是 判断x=2,值为2,所以是“真”,直接输出 OK
类似于结构
if(表达式1)语句1
esle if (表达式2)语句2
.....
中的表达式,不推荐使用等式。
尝试下面这个,你会明白多些。
cpp代码
- #include "stdio.h"
- main()
- {
- int x=2;
- if(x>2)
- printf("ok,%d\n",x);
- else if (x<2)
- printf("%d\n",x);
- else printf("quit\n");
- }
转载请注明:鸟儿博客 » 为什么输出的结果是ok