永发信息网

C语言前自增和后自增的问题

答案:6  悬赏:50  手机版
解决时间 2021-03-24 00:01
  • 提问者网友:人傍凄凉立暮秋
  • 2021-03-23 07:36
C语言前自增和后自增的问题
最佳答案
  • 五星知识达人网友:愁杀梦里人
  • 2021-03-23 08:57
后置的自增自减运算符优先级低于大多数运算符,而前置的高于大多数。
&&和||都是左表达式一旦能确定整个表达式的值,便不再执行右表达式,与之相对的是&和|
所以,
第一次:
z = 3 > 0 为真,z--,z = 2,判断右边

x = 0,++x,x = 1 < 5 为真

y--,y = 4

第二次:
z = 2 > 0 为真,z--,z = 1,判断右边

x = 1,++x,x = 2 < 5 为真

y--,y = 3

第三次:
z = 1 > 0 为真,z--,z = 0,判断右边
x = 2,++x,x = 3 < 5 为真

y--,y = 2

第四次:
z = 0 > 0 为假,z--,z = -1,跳过右边

x = 3,被跳过,值不变

y = 2,条件为假,不执行,值不变

所以结果为:
x = 3, y = 2, z = -1
全部回答
  • 1楼网友:低血压的长颈鹿
  • 2021-03-23 12:02
while(z-->0&&++x<5) 注意挡Z--不大于0的时候,++X < 5不执行
  • 2楼网友:轻雾山林
  • 2021-03-23 11:38
z-->0&&++x<5
先z>0 后z-1;
然后x+1 后x<5
  • 3楼网友:青灯有味
  • 2021-03-23 10:45
注意:Z--在循环的时候,先拿z判断>0,然后在z-1=2,++x这时等于1(++x是先加1在判断)

输出的是1,4,2
  • 4楼网友:煞尾
  • 2021-03-23 10:34
把自增和自减 多写几个试题做做,然后电脑上调试一下,应该可以弄懂。
  • 5楼网友:行路难
  • 2021-03-23 09:48
第一次3>0 && 1<5 y==4
第二次2>0 && 2<5 y==3
第三次1>0 && 3<5 y==2
第四次0>0为“假”,&&后再不做了,但z--还要执行,所以结果是3,2,-1。不知道这个答案与你知道的一样不一样。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯