题目形式虽然简单,但我的理解不是很清楚,请朋友们讲解的透出些,谢谢大家。A题如下:for(;;);请问上题为什么会构成死循环?B题如下:int s=36;while(s); --s;请问上题为什么会构成死循环?
热心网友
for(;;)中,第1个表示循环变量的初始值;第2个参数表示继续循环的判断条件;第3个参数表示循环控制变量的递加量。当第2个为空时不作判断,成死循环,此时与1、3个无关。while()中的参数为逻辑量,非0表示真。后面的--s因为之前有个“;”号,被隔在循环体外,所以s的值永远=36。
热心网友
for(;;)中的第一个分号前的表达式表示条件的初始直,第二个是判断表达式用来判断是否退出循环,第三个表达式是用来表示条件的变化值所以第一个空没初始直,第二个空表示一直循环,第三空没有退出条件 同时for(;;)等同while(1);while(36)表示永远为真所以做循环但while语句是做到第一个分号就结束的所以无法作到--s;所以就是死循环如果要正确那while(s) --s;