以我自己的理解来说,rand()返回一个从0到系统规定的一个数(假设为x),x是系统规定的。
而time(0)【和time(NULL)是一回事】返回 1970(Linux诞生元年) UTC Jan 1 00:00到当前时刻的秒数,
为unsigned int类型(unsigned int 类型就不多说了)。
至于为什么要写成
srand((unsigned )time(0));
因为1970(Linux诞生元年) UTC Jan 1 00:00到当前时刻的秒数,是一直在增加的(这应该能理解吧!)。所以time(0)就一直在变。
而srand((unsigned )time(0))就是改x的,也就是说【rand()返回一个从0到系统规定的一个数(假设为x)】rand()返回的那数的区间的范围在变。相当于每次从不同的区间内取一个数,也就是随机数了。
自己规定一个数a 而
a=rand();
这里将rand()返回的数赋值给a,如果要取100之间的随机数则
a=rand()%100;
做完一次赋值,srand((unsigned )time(0)); 就改变一次x的值。
大概就是这样。