您的位置:首页 > 编程语言 > C语言/C++

在C++编程中srand((unsigned int)(time(NULL)))这句代码的解读

2017-11-26 22:54 344 查看
分享这个博客链接,讲的真的很好。

主要有以下3方面收获:

1.srand跟rand的关系。

就是每次使用rand(),都会看之前调用了srand()函数没有,没有,默认调用了srand(1).

有调用,就是strang(seed),这里的seed就是标题的time(NULL).

rand()取随机数公式:

要取得[a,b)的值可以用:(rand()%(b-a))+ a;(当a为0时,可以用rand()% b)

取得伪随机浮点数: (rand()/ double(RAND_MAX))可以取得0-1之间的浮点数,

如果想获得更大的随机值可以通过(rand()/ double(RAND_MAX)/ 10)以此类推

2.time函数的简单用法

在c中的头文件为

#include <time.h>//C语言的头文件
#include <ctime>//C++语言的头文件


time函数可以获取当前的系统时间(但是获取的是秒数,是从1970年1月1日零时零分零秒到目前为止所经过的时间),ctime可以将其转化为常规的时间

3.代码执行优先级

我们可以看到这个函数的参数:(unsigned int)time(0)

从优先级的角度看,这些都是单目运算符,单目运算符的处理顺序是从右往左的,所以上面的处理过程是:对于time函数,给了一个参数为0的值,返回一个当前系统时间的秒数,然后在将其强转为unsigned int类型。

还有如同(*p++):这个也是单目运算符,处理也是从右往左的

具体更多详细内容,看http://blog.csdn.net/msdnwolaile/article/details/50707481
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c语言 C++