A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 驴小叔 中级黑马   /  2015-8-31 21:33  /  533 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

#include <stdio.h>

int main(int argc, const char * argv[]) {
    int y=5;
    do{
        
        y--;            
    }while(--y);      
    printf("%d\n",y--);
    return 0;
}

1 个回复

倒序浏览
第一次循环时到 while(--y); 这句前,y=4,判定while时 先剪后判 为 while(3)
第二次同理 到while语句前为2, 判定时为1
到了第三次 判定时为-1

由于while语句只有在判定为0时结束,所以,整个就成了死循环.

假设 这个y的初始值为6   则跳出循环时  y为0 ,输出的结果也为0

设a=1
主要在于 a++ 在执行语句时,a为原值1,   ++a在执行语句时 a为a+1的值2    语句执行后 a的值都为a+1=2

即执行语句的状态下     a++字母在前则用原值    ++a符号在前则用+1后的值
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马