LebronWD 发表于 2020-11-9 00:46:21

求助C语言课后S1E28一道题

求教,C语言课后S1E28动动手最后一题里的82行里的
// 打印字母间的间隔(空格)
                        int temp = gap;
                        while (temp--)
                        {
                              putchar(' ');
                        }


如果把int temp = gap这行注释掉
直接改成while(gap--)就会陷入死循环,求教为什么会这样。。。。

jackz007 发表于 2020-11-9 01:18:53

本帖最后由 jackz007 于 2020-11-9 01:23 编辑

       死循环应该不是这个 while 语句所直接造成,代码中之所以要新增变量 temp 代替 gap,直接原因应该是变量 gap 除了在这里有用,在后面的代码中还会继续有用,所以,不希望在这里被改变。你把循环变量 temp 改成 gap ,循环结束的时候,gap 就会变成 0 值,这样,可能会影响到后面代码执行的流程走向。死循环应该和这个原因有关。
页: [1]
查看完整版本: 求助C语言课后S1E28一道题