rand()
当提及c语言随机数,大家首先想到应该是rand()吧。但其实rand()不是生成真正的随机数,它的原理是它有一个基数(种子),然后rand()生成的数字与这个基数(种子)有关。(你不刻意设定基数,那么基数就是一样的。也就是说,你这次使用rand()和你下次使用rand()的结果是一样的)
srand()
srand()这个函数的功能就是为rand()设定一个基数(种子)。
用法:srand(数字),数字要unsigned类型。
time()
要调用此函数首先需#include<time.h>
此函数会返回一个值——1970年1月1日00:00:00到现在的时间差(以秒为单位)
用法:
1.time(NULL)或time(0)
time_t t1;
t1=time(NULL)(将空指针传入time()函数内,再将time()函数返回值赋给t1)
2.time(&t1)
time_t t1;
time(&t1)(将t1的地址传入time()函数内,返回值自动为t1赋值)
真正的随机数
srand((unsigned)time(NULL))(将time()返回值强制转型成unsigned传入srand,因为每时每刻的time()返回值都是不一样的,所以srand()的基数(种子)也是每时每刻不一样)