【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 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容

【C++】小竹的C++学习笔记分享 | 78篇体系化文档×4.7 万字(PDF 可下载) - AI科研 编程 读书笔记 - 小竹の笔记本
订阅本站更新 - AI科研 编程 读书笔记 - 小竹の笔记本
【日常】2025年度总结(重磅手敲8K字) - AI科研 编程 读书笔记 - 小竹の笔记本