c - for循环缺少初始化

标签 c

我见过

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/

相关文章:

c - sqlite 中的更新语句

c - 如何从c中的数组中删除一系列元素

c - 在 C 编程中声明的 double 不会输出分配给它的内容

c - 具有不同功能的线程之间的互斥锁

c - 端口为零的绑定(bind)会将您绑定(bind)到一个自由端口。这是可移植的吗?

c++ - 如何使用 pthread_setaffinity_np

c - 为什么这个条件表达式的大小是 float ?

c - 结构中的函数

c - 编译 C 程序时体系结构 x86_64 的 undefined symbol

c - 在 C 中使用按位运算符