c语言中这两种语法有什么区别?
第一个语法
int i;
for(i=0;i<5;i++)
{
printf("Hello");
}
第二种语法
for(int i=0;i<5;i++)
{
printf("Hello");
}
我问我的教授,他说两者都一样,但我对这个答案不满意。
请告诉他是否正确?
两种语法在某些方面是相同还是不同?
回答
两个代码片段将产生相同的输出,但含义有所不同。
在第一个代码片段中,变量i将在 for 循环之后继续存在,而在第二个代码片段中,变量的范围i仅限于 for 循环的主体。
此外,第二个代码片段对于 C99 之前的 C 版本无效,因为这些版本不允许在 for 语句中声明变量。
通常最好尽可能地限制变量的范围,因为这会导致代码更简单。