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設置種子也沒有什麼用處。所以庫函數產生隨機數有一定的缺陷。不知道我解釋明白了沒有!