for(;;)是使用for循环的另一种表现形式,与while(1)相同,它没有设置任何的循环条件,所以也会一直执行循环体。 2、可读性 while(1)在一些场景下可能会让代码的意图不够清晰,读者需要仔细阅读代码才能理解循环是无限循环的。 for(;;)虽然也是一种常见的表示无限循环的写法,但由于for关键字和分号的使用,使得它...
for(;;)和while(1)都是创建无限循环的常见方法,但它们在语法和使用场景上有一些细微的区别。以下是对这两种循环的详细比较: 1. 语法和结构 for(;;) for循环的语法通常包括三个部分:初始化、条件和迭代表达式。for(;;)是一种特殊形式的for循环,其中所有这三个部分都被省略了。 代码语言:javascript 复制 ...
语法结构:while(1)使用while关键字,for(;;)使用for关键字,两者在语法上有所不同。 阅读习惯:while(1)更直观地表达“当条件为真时循环”,而for(;;)则更符合习惯的for循环结构。 灵活性:for(;;)具有更大的灵活性,可以在循环开始处添加初始化语句,适用于需要在循环开始时进行变量初始化的情况。 约定俗成:在...
2.不同点while(1):其中括号里面是一个条件,程序会判断真假。而括号里面的“1”永远是一个“真值”。
while(1)比for(;;)更省资源 1、while(1)比for(;;)更省资源反汇编之后对比 2、volatile关键字一个定义为volatile的变量是说这变量可能会被意想不到地改变。 精确说,又花钱在用到这个变量时必须每次都重新读取这个变量的值,而不是使用保存在寄存器里的备份。 只有只读的状态寄存器的参数是const还可以是volatile...
一、没啥区别党:都是心理作用 大部分网友认为二者并没有什么区别,很多时候,只是心理作用,国外工程师认为while需要经过判断括号里的表达式是否非0才跳转。但经过编译器的精心优化以后,while(1)也会被优化成无条件跳转(jmp指令),所以跟for(;;)没什么区别。有人表示,for(;;)在英语母语者那里很容易跟forever挂钩。网...
C语言中死循环有两种常见方式: // 循环方式1 for(;;) { //执行语句 } // 循环方式2 while(1) { //执行语句 } 区别: for(;;)中的;;代表两个空语句,编译器会在编译时将其优化,直接进入循环;而while(1)存在一个判断语句--即是否为1,效率上稍逊于前者...
"死循环”有两种写法:for(;;)和while(true),两者在汇编层面存在区别,多数源码中多数是for( ; ; )这种形式。 如下图所示,对源码反汇编后进行对比,for (;;)指令少,不占用寄存器,而且没有判断跳转,相对while()循环来说更加简洁明。