rand()和srand()不怎么明白

为什么srand()放在for循环里面和外面输出来的结果不一样,放在外面输出来的就是10个随机数,放在里面输出来的就全是5,或全是2.。

int main()

{

int a[10];
int i;  
for (i = 0; i < 10; i++)
{       
    srand((time(NULL)));
    a[i] = rand()%10;
}

for (i = 0; i < 10; i++)
{
    printf("%d ",a[i]);
}

getchar();
return 0;

}
图片说明图片说明

srand((time(NULL)));
这个是用当前时间初始化种子
因为计算机很快
所以放在循环里面,等于每次都初始化了相同的种子,所以出现了数字的重复
放在外面,则只初始化了一次,可以得到一串伪随机数