花褪残红青杏小。燕子飞时,绿水人家绕。

为什么输出的结果是ok

菜鸟编程 十五楼的鸟儿 25263浏览 0评论

今天在某坛子里看到一个坛友发的一个问题,源程序如下:

 

cpp代码
  1.  #include "stdio.h" 
  2. main() 
  3.         int x=1; 
  4.         if(x=2) 
  5.                 printf("ok\n"); 
  6.         else if (x<2) 
  7.                 printf("%d\n",x); 
  8.         else printf("quit"); 
  9.   

初始看上去貌似没什么问题,自己看一下问题还是有的:

c语言在执行if语句的时候,先对表达式的值求解,如果表达式的值为0,则按“假”处理,如果表达式的值非0,则按“真”处理。

在执行你提供的语句过程种,先执行的是 判断x=2,值为2,所以是“真”,直接输出 OK

类似于结构
if(表达式1)语句1
esle if (表达式2)语句2
.....
中的表达式,不推荐使用等式。

尝试下面这个,你会明白多些。

 

cpp代码
  1.  #include "stdio.h" 
  2. main() 
  3.         int x=2; 
  4.         if(x>2) 
  5.                 printf("ok,%d\n",x); 
  6.         else if (x<2) 
  7.                printf("%d\n",x); 
  8.         else printf("quit\n"); 
  9.   

 


转载请注明:鸟儿博客 » 为什么输出的结果是ok

游客
发表我的评论 换个身份
取消评论

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址