srand()
这个函数在C/C++中经常跟rand函数一起使用,srand是随机数发生器的初始化函数.
在C中:这两个函数都位与<stdlib.h>头文件里面
在C++中:两个函数都位与<cstdlib>(被包含于iostream中)
原型:void srand(unsigned int seed)
void rand (void)
seed相当于一个种子,srand函数根据这个种子seed,设置一个随机起点,而rand函数根据这个随机起点,返回一个随机数【seed ,RAND_MAX】,其中RAND_MAX是0x7ffff,但是是一个伪的随机数(多次编译产生的随机数是一样的,除非给一个变化的种子)。
值得注意的是:
rand函数每一次被调用的时候,它都会查看之前是否调用了srand函数
1. 如果调用了,则会调用srand(seed)来初始化它的随机值
2. 如果没有调用,则会默认的调用srand(1)来初始化它的随机值
所以说:即使程序中没有调用srand,也和调用了srand(1)是一样的效果;并且为了让每一次程序的调用都产生不同的值,所以常常使用系统时间来初始化,也就引入了time(NULL)。
time()
time函数可以获取当前的系统时间(但是获取的是秒数,是从1970年1月1日零时零分零秒到目前为止所经过的时间),ctime可以将其转化为常规的时间.
在c中的头文件为<time.h>,在c++中头文件为<ctime>
原型为:time_t time(time_t* timer) (其中time_t是long int)
char* ctime(const time_t* time)