我见过
for(;;)
和
for ( ; *s != '\0'; s++)
为什么是这样的空白。谢谢。
最佳答案
for
语句的工作方式如下:
for(初始化;测试条件;更新)
这三者中的任何一个或全部都可以省略(留空)。所以:
for (;;)
是无限循环1 等同于while (true)
因为没有测试条件。事实上,for (int i=0; ;i++)
也是一个无限循环1。for ( ; *s != '\0'; s++)
是一个没有初始化的循环。s
将指向(可能)字符串的开头并递增,直到到达表示字符串结尾的空字符'\0'
。这实质上意味着遍历字符串s
的所有字符
1 如果循环体中有break
语句,或者调用exit()
等,循环仍然会被中断...
关于c - for循环缺少初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3792183/