我们在 C 中使用 time(NULL) 来生成随机值是为了什么?time(NULL)
这段代码中的含义是什么?
int i, zarodek;
zarodek= time(NULL);
srand(zarodek);
int r = rand() % 49 + 1;
printf("%d",r);
它正在获取系统时间(以秒为单位)。您可以选择提供一个指向将接收时间的值的指针,但由于该值无论如何time_t
都是从函数返回的,您可以改为传递(并且该函数不会尝试分配给空指针)。time
NULL
使用的目的time
是播种随机数生成器(将其传递给srand
)。使用时间很常见,因为每次运行程序时它通常都不同。
请注意,您应该只播种一次(而不是每次调用rand
)。
那就是用当前时间播种随机数生成器。如果不这样做,那么每次运行程序时,都会得到相同的随机数序列。
尝试一下!
您可以让 time 返回当前时间,也可以将指针传递给目标 struct time_t
。