time
-
c语言调用time()函数括号里面为什么要有个NULL?
- time_t time(time_t *timer)
- 你先自己定义一个time_t变量,然后把变量的地址传给它。函数会返回自1970年1月1日0点走过的秒数,同时把这个返回值保存在你传进来的那个time_t *指向的变量里面,如果你传进来NULL的话就不保存。
- time_t类型指针本质上是指针变量也可以指向NULL。time()函数有个规定,如果你传进来的是一个NULL指针,那么系统返回当前时间,如果不是,那么系统认为你要修改当前时间,就把你传进去的指针对应的time_t变量的值设置为当前时间。
-
一段程序
-
#include<time.h> static unsigned long int next = 1; int rand(void) { next = next * 1103515245 + 12345; return (unsigned int)(next / 65536) % 32768; } void srand(unsigned int seed) { next = seed; }
-
在这个样例中,“种子”为静态内部变量next,初始值为1。如果我们不使用srand来更新next,很显然我们每次调用程序生成的伪随机数都是一样的(next从1开始)。如果我们在程序中用srand来更新next,那么我们每次运行程序,就给next初始化以不同的值,于是就能够得到不一样的伪随机数序列。
-