c语言timenull
① c语言srand time null 怎么用
这是产生随机数的函数
头文件#include<time.h>
#include<stdlib.h>
srand(time(null))产生随机数种子,后面的伪随机数将根据这个种子产生。
rand()产生一个随机整数,范围是0-RAND_MAX
RAND_MAX是stdlib.h中定义的,其大小与系统有关,一般是32767,具体你可以自己输出下看看
② c语言中time(NULL)返回值
time 函数有两中用法,如果他里面带参数,那就把返回值放在参数里面,否则就直接返回time值,在unix中是国际标准时间公元1 9 7 0年1月1日0 0 : 0 0 : 0 0以来经过的秒数。这种秒数是以数据类型t i m e t表示的,可以用%ld打印出来
③ c语言中time(NULL)返回值
您好,很高兴能为您解决问题。
如果出错,您可以在出错后马上调用getlasterror,函数会返回一个整数。返回之后,你可以去网上查getlasterror返回值的含义。比如126就是找不到模块句柄的意思。
希望我的解答能帮到您,望采纳!
④ C语言srand((unsigned)time(NULL)); 是什么意思
srand()函数用来设置算法的种子,time(NULL)返回当前的时间,先调用srand(time(NULL))是把当前的时间作为种子,是程序每次运行产生不同的随机数序列。
涉及到三个概念:
1、随机数:数学上产生的都是伪随机数,真正的随机数使用物理方法产生的。
2、随机数种子:随机数的产生是由算术规则产生的,srand(seed)的随机数种子不同,rand()的随机数值就不同,倘若每次的随机数种子一样,则rand()的值就一样。所以要产生随机数,则srand(seed)的随机数种子必须也要随机的。
3、用srand()产生随机数种子
原型:void srand ( unsigned int seed )。作用是设置好随机数种子,为了让随机数种子是随机的,通常用time(NULL)的值来当seed。
参考资料来源:网络--srand
⑤ c语言中,time(NULL)的NULL代表什么意思time()括号中可以换成其它的什么变量吗
time是这样声明的:
time_t time( time_t *timer );
用法是你先自己定义一个time_t变量,让后把变量的地址传给它。函数会返回自1970年1月1日0点走过的秒数,同时把这个返回值保存在你传进来的那个time_t*指向的变量里面。如果你传进来NULL的话,就不保存。
⑥ C语言 time(NULL)
c语言中 srand(time(NULL)); 的意思是:使用当前时间进行随机数发生器的初始化。
time_t time(time_t *t); 是C标准库函数,如果t是空指针(NULL),直接返回当前时间。如果t不是空指针,返回当前时间的同时,将返回值赋予t指向的内存空间。
time() 是指返回自 Unix 纪元起的当前时间的秒数的函数,主要用来获取当前的系统时间,返回的结果是一个time_t类型。
srand函数是随机数发生器的初始化函数。原型:void srand(unsigned int seed); srand和rand()配合使用产生伪随机数序列。
time()的定义和用法
其值表示从UTC(Coordinated Universal Time)时间1970年1月1日00:00:00(称为UNIX系统的Epoch时间)到当前时刻的秒数。然后调用localtime函数将time_t所表示的UTC时间转换为本地时间(我们是+8区,比UTC多8个小时)并转成struct tm类型,该类型的各数据成员分别表示年月日时分秒。
功能说明:srand设置产生一系列伪随机数发生器的起始点,要想把发生器重新初始化,可用1作seed值。任何共它的值都把发生器匿成一个随机的起始点。rand检索生成的伪随机数。在任何调用srand之前调用rand与以1作为seed调用srand产生相同的序列。
此函数可以设定rand函数所用的随机数产生算法的种子值。任何大于一的种子值都会将rand随机数所产生的虚拟随机数序列重新设定一个起始点。
⑦ C语言rand()和time(NULL)之间的问题。
rand()是去伪随机数的一个简单算法,他每次算出来的值不一样,不过要取一次种子当参数。。。,rand()中间会用到一个变量(也可能好几个),但不是你申请的,srand()相当于为这个变量赋值,每次rand()这个值都会变,所以你下一次不会
和前一个相同,只要你不重新调用 srand(j),重新调用这个变量会复原,参会导致你得出的值不会变。。。。
就像我给你10块钱,不代表你永远不花,越花越少,所以每花一次你剩下的前都不会是相同的值,如果你还赚钱了,还能变大。。。。
⑧ C语言 time(NULL)
我们知道在产生随机数的时候,需要一个叫做种子seed的值作为产生随机数算法的初始值。
而c/c++库中的srand就是为这一次的随机数生成设置种子。s代表的就是seed的意思。
time_t
time(time_t
*time);该函数返回自计算机计时的某个时刻起到现在所过去的秒数。
一般是返回自1970年1月1日00:00:00以来,到调用函数的时刻所累积的秒数。
所以综上所述:
srand((unsigned)time(null));
这语句的含义就是以自1970年1月1日00:00:00以来,到调用函数的时刻所累积的秒数作为
产生随机数算法的种子seed。
没有语句会对程序产生什么影响:
如果在程序运行时没有自主设置种子的话,用函数rand产生的随机数序列会是一样的。
而用srand设置随机数种子后,可能产生不同的随机序列(概率很大)。
之所以说以很大的概率产生不同的随机数序列,是因为从上面的解释可以看到,
srand是以秒数为单位的。一旦程序多次运行的时间间隔少于1s。那么srand设置种子也没有什么用处。所以库函数产生随机数有一定的缺陷。不知道我解释明白了没有!