欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: C語言srand和rand用法詳解 [打印本頁]

作者: 51hei社區(qū)    時間: 2016-1-16 07:03
標題: C語言srand和rand用法詳解
                         今天本來看數(shù)據(jù)結構的,結果發(fā)現(xiàn)有這么句話srand(time(0)),注釋是初始化隨機數(shù)種子,結果發(fā)現(xiàn)time(0)不解,好像以前看到過,然后網(wǎng)上查了下,發(fā)現(xiàn)了time.h這個頭文件中有此函數(shù)
typedef long time_t;
time_t time(time_t *);
這個函數(shù)的返回值和形參都是返回從1970年1月1日0時0分0秒到現(xiàn)在的秒數(shù),所以用long型,當然也可以給形參傳個NULL
往后看了下,還有幾個實用函數(shù)

struct tm * gmtime(const time_t *);
struct tm * localtime(const time_t *);
tm定義成以下結構體
struct tm {
       inttm_sec;   
       inttm_min;   
       inttm_hour;   
       inttm_mday;   
       inttm_mon;   
       inttm_year;   
       inttm_wday;   
       inttm_yday;   
       int tm_isdst;  
       };
看這函數(shù)名一個是獲取格林威治時間,另一個是獲取本地時區(qū)的時間
于是寫了個程序測了下,還真是如此
time_t timer;
tm *stm;
time(&timer);
stm=localtime(&timer);
然后當前的時間信息就被保存在stm指向的結構體中。

好了回到正題
函數(shù)一:int rand(void);
從srand (seed)中指定的seed開始,返回一個[seed, RAND_MAX(0x7fff))間的隨機整數(shù)。

函數(shù)二:void srand(unsigned seed);
參數(shù)seed是rand()的種子,用來初始化rand()的起始值。

seed如果是固定值,那么每次產(chǎn)生的隨機數(shù)也是固定不變的,通常的做法是  以這樣一句代碼srand((unsigned)time(NULL));來取代,這樣將使得種子為一個不固定的數(shù),這樣產(chǎn)生的隨機數(shù)就不會每次執(zhí)行都一樣了。







歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1