为什么选D, for loop中间的循环条件语句可以省略吗,选D的话不会无限循环吗
明显看出c是错的不是“,”是“;”
几种特殊for语句的用法: (1)for小括号内三个表达式为空 例 for(;;) printf ("test"); 在小括号内只有两个分号,无表达式。表示无限循环。这种无限循环适用于菜单选择程序中。 (2)没有循环体的for语句 例:for(; *str==''; str++) ; 这种情况循环体内的语句只是一个分号,这个for循环是指针str所指流中的前导空格删除。 例:for (t=0;t ;) 此例在程序中起延时作用。
D即使是死循环,但不影响编译的,我们平常也会不小心写了死循环,但编译也会过不是吗
这里问的是能不能通过编译,没人问你能不能正确执行逻辑,这是完全不同的概念
就像你能印钱但不一定能花出去
那么就暴露了你对for循环语法不熟悉的问题
首先,for循环里面分3个部分,中间用分号分隔
for(a;b;c)三个表达式,
a用于初始化,只在循环最开始执行一次
b在每次循环开始时进行判断,为真继续循环,为假结束循环,可以不填,不填则默认为真
c在每次循环结束后执行一次,一般用于给循环变量自增
如果写成for(;;),那么跟while(1)等价