2

我们在 C 中使用 time(NULL) 来生成随机值是为了什么?time(NULL)这段代码中的含义是什么?

 int i, zarodek;
    zarodek= time(NULL);
    srand(zarodek);
    int r = rand() % 49 + 1;
    printf("%d",r);
4

3 回答 3

5

它正在获取系统时间(以秒为单位)。您可以选择提供一个指向将接收时间的值的指针,但由于该值无论如何time_t都是从函数返回的,您可以改为传递(并且该函数不会尝试分配给空指针)。timeNULL

使用的目的time是播种随机数生成器(将其传递给srand)。使用时间很常见,因为每次运行程序时它通常都不同。

请注意,您应该只播种一次(而不是每次调用rand)。

于 2012-11-18T23:39:59.137 回答
3

那就是用当前时间播种随机数生成器。如果不这样做,那么每次运行程序时,都会得到相同的随机数序列。

尝试一下!

于 2012-11-18T23:39:59.573 回答
0

您可以让 time 返回当前时间,也可以将指针传递给目标 struct time_t

于 2012-11-18T23:39:56.317 回答