爱问知识人 爱问教育 医院库

C语言

首页

C语言

main()
{int x=1,y=1,z=1,t;
 t=++x||++y&&++z;
 printf("%d%d%d%d",x,y,z,t);}
运行结果为什么是2111.。。请高手分析一下。。

提交回答
好评回答
  • 2010-03-31 19:15:57
    上述表示式++y&&++z不会执行,所以y、z的值仍是1,t是整个逻辑表达式++x||++y&&++z的值,结果是1,也就是逻辑真,++x会执行,所x=2,这样printf("%d%d%d%d",x,y,z,t)结果就是2111。
    为什么++y&&++z不会执行?
    因为在++x||++y&&++z这个表达式中包含||运算,在有||的表达式中遇到第一个逻辑为真的值时就不再计算后面的表达式了,也没有必要再计算了,这个其实很好理解,因为逻辑或的特点是只要一个值为真整个表达式都为真,后面再多真真加假也无所谓了,也没有必要再计算了。
    如果把x改为x=-1,你试试,结果是0221。
    祝你成功,不明白可以给我留言。

    o***

    2010-03-31 19:15:57

其他答案

    2010-03-31 09:22:02
  • 这种语句你编程编到老也不会去写的.. 研究它没有意义..
    说实话根本没有一个程序员会去写这样的语句

    c***

    2010-03-31 09:22:02

类似问题

换一换
  • C/C++ 相关知识

  • 电脑网络技术
  • 电脑网络

相关推荐

正在加载...
最新问答 推荐信息 热门专题 热点推荐
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200

热点检索

  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 172-191
返回
顶部
帮助 意见
反馈

确定举报此问题

举报原因(必选):