在循环中定义一个 var

defining a var in loop

在循环内部或外部定义变量有什么区别? 例如:

int a;
for(int i=1; i<11; i++){
    a = rand()%10;
    printf("%d\n",a);
}

先定义a,然后循环使用。 但在 :

for(int i=1; i<11; i++){
    int a = rand()%10;
    printf("%d\n",a);
}

这里a是在循环中定义的。 有什么区别,哪个比较慢?

区别在于变量的范围。 a 在第一种情况下循环结束后存在,但在第二种情况下不存在。