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
暂无评论内容