MSDN里的一个经典的例子∶#include <stdlib.h>
#include <stdio.h>
#include <time.h>void main( void )
{
int i;
srand( (unsigned)time( NULL ) );
for( i = 0; i < 10;i++ )
printf( " %6d\n", rand() );
}
我现在没明白,rand()函数是如何与种子数time取得联系的?也就是说,
srand( (unsigned)time( NULL ) )这句代码和rand()是怎么联系的?
#include <stdio.h>
#include <time.h>void main( void )
{
int i;
srand( (unsigned)time( NULL ) );
for( i = 0; i < 10;i++ )
printf( " %6d\n", rand() );
}
我现在没明白,rand()函数是如何与种子数time取得联系的?也就是说,
srand( (unsigned)time( NULL ) )这句代码和rand()是怎么联系的?
srand() 与rand()之间的纽带是什么?
srand() 与rand()之间可没有传递任何变量啊!
但我还是没明白∶
srand() 产生了种子数,这个种子数保存在哪里?
rand()是要用到这个种子数的,它到哪里去取这个种子数?打个比方∶
先取得srand()产生的种子数∶
seed = srand();
然后利用这个种子数,产生随机数∶
rand(seed);不知道这样打比方合不合适。总之一个意思∶srand() 与rand()之间的纽带是什么?
rand的参数不是void么,所以srand(int seed)+rand(void)==Rand(int seed),不是非要看到源码吧,理解了就可以了