好难啊,不会做啊,怎么这么难

for(i=1;;)
if(++i<10)
contine;
为什么这个代码段是死循环,而且++i的值会赋给表达式1里面的i吗

这和


for (i = 1;; ++i)
        if (i < 10)
            continue;

是等价的,所以i的值会变,但是没有循环终止条件,所以是死循环

虽然if(++i<10)在++ 9次后是判断为假了,但这里是为了迷惑你,实际for循环没有设定结束的条件,会一直循环下去,标准的死循环。如果contine改为break,则在i=10会跳出for循环。