第1个回答 2020-07-10
步骤a.
x=3; -> x=1 -> while(!0) -> 即while(1) -> 非0即为真 -> whiel循环中为真
-> 继续执行步骤b
步骤b.
x=0; -> x=-2; -> --x 得x=-3; ->此时的while循环中为!(-3)
-> 执行结束,跳出循环
解释b步骤中跳出循环的原因:
因为:在C语言中,非0即为真 -> 可以看成 !0 == 1, 即假设 !x == 1
要使假设成立,则此时 x==0 才能满足 !x == 1 这个条件。
又因为:b步骤中最后x==-3,-3 != 0 ,即!(-3) != 0
所以:条件不满足(while中不为1),跳出循环
所以:最后输出1和-2,而不是死循环