【C】while(y--);/while(y++);最终y是多少?

while(y--)

#include <stdio.h>
int main(){
    int y=10;
    while(y--);
    printf("%d",y);
    return 0;
}

答案:无论y一开始是多少,最终y都等于-1。

为什么?

因为非0即真+对于一个数如果一直+或者一直-,超出范围时,会自动循环到另一边。就像凯撒加密中,给Z+1结果是A一样。

所以如果一开始y就是<0的数,那么会一直循环,越来越小,到达范围边界时,变为最大的边界,再减少,到0时退出循环,因为执行了自减运算,所以最终结果是-1。

while(--y)

扩展一下,如果括号内变成--y,那么程序结果是什么呢?

答案:无论y是多少,最终都是0!自己思考。

© 版权声明
THE END
点赞8 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容