为什么C程序员经常在for循环条件之外声明"counter"变量:

Mar*_*rko 9 c

我是C的新手,我认为无论怎么做都没有任何区别,但我注意到在大多数示例中,for的循环都是如下例所示:

int i;
for(i = 0; i < 10; i++){
   //some code
}
Run Code Online (Sandbox Code Playgroud)

而不是我最初如何在Java中引入for循环:

for(int i = 0; i < 10; i++){
    //some code
}
Run Code Online (Sandbox Code Playgroud)

这背后有什么理由在C?

Iha*_*imi 16

  1. 旧的c标准不允许在其中声明变量for,因此许多程序员习惯使用它,而其他程序员仅限于预先C99()标准.

    但像我这样的年轻c程序员会写for (int counter ...,甚至经常构造像

    for (int index = 0; string[index] != '\0'; ++index) ...
    
    Run Code Online (Sandbox Code Playgroud)
  2. 有时候,这只是因为算法要求它.例如,如果您需要知道index上面的示例构造中的最后一个值是什么.这是遍历字符串字符的常用方法.