i=5,printf("%d%d",i,++i)

2025-03-28 08:34:57
推荐回答(5个)
回答1:

你好!!!
首先会循环40次:从i=1到i=40,当i=1;的时候,先执行if(i++%5==0),其中i++表示先是用i当前的值,然后在加一,即if(i++%5==0)等价于if(i%5==0),i++;显然i=1,不成立(此时i已经等于2了)那么就执行下次循环,此时的i=3了,还是、、、、

最后当i=30的时候,if(i++%5==0)满足条件,此时的i=31.然后if(++i%8==0)其中是++i,是先把i加一,即此时I=32,然后在判断if(i%8==0)显然也成立,那么就输出32哈、、、后面也是如此!!

不理解的我们在联系!!!

回答2:

先从右到左读入缓冲去,再从左到右输出 ,也就是先++i,读入6,然后i,也是6,所以这儿结果是6,6

回答3:

同意楼上,这里要区分i++与++i,i++是赋值后自加,而++i是自加后再赋值!
如a=i++;则a输出值为i,若b=++i,则b=自加后的i

回答4:

这里输出的是6, 6
printf("%d%d",--i,++i);
函数输出时参数是从右至左的!

回答5:

如果按你说的那样,就输出 5 5 了。
这里输出的应该是5 6