这些for循环之间有什么区别?

0 c for-loop variable-assignment

这两个for循环有什么区别?有人告诉我不要在我的代码中使用第二个例子.我很困惑,因为这不是其他语言的问题.

那么与此有什么区别/问题还是仅仅是偏好?

//ex1
int i;
for(i = 0; i<whatever; i++){...code}

//ex2
for(int i=0; i<whatever;i++){...code}
Run Code Online (Sandbox Code Playgroud)

Cha*_*rns 17

区别在于范围界定i.

在第一个示例中,i在循环之后的内部和范围内.

在第二个示例中,i在循环内部具有范围.

第二个例子是C99及更高版本.

尽可能使用第二个示例,第一个是在i循环后需要时,或者编译器不支持C99时.