c語言中語句srandtimenull什麼意思

2021-06-25 14:45:08 字數 1322 閱讀 7037

1樓:八哥說科技

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()配合使用產生偽隨機數序列。

2樓:匿名使用者

設定隨機種子數,要不然每次程式啟動時用 rand() 取得的隨機數都是一樣的。

3樓:匿名使用者

c語言中語句srand( (time(null) ) ; 表示設定一個隨機種子,每次執行都能保證隨機種子不同。

在c語言中,rand()函式可以用來產生隨機數,但是這不是真正意義上的隨機數,是一個偽隨機數,它是根據一個數,我們可以稱它為種子,為基準以某個遞推公式推算出來的一系數,但這不是真正的隨機數,當計算機正常開機後,這個種子的值是定了的,除非你破壞了系統,為了改變這個種子的值。

因此,c提供了srand()函式,它的原型是 void srand( int a)。用來改變這個種子值。

srand( (time(null) )中time(null)函式是得到一個從2023年1月1日到現在的時間秒數,這樣每一次執行程式的時間的不同就可以保證得到不同的隨機數了。

4樓:好男人man起來

srand函式是隨機數發生器的初始化函式。原型:void srand(unsigned seed)。

用法:它需要提供一個種子,這個種子會對應一個隨機數,如果使用相同的種子後面的rand()函式會出現一樣的隨機數。如:

srand(1); 直接使用1來初始化種子。不過為了防止隨機數每次重複常常使用系統時間來初始化,即使用 time函式來獲得系統時間,它的返回值為從 00:00:

00 gmt, january 1, 1970 到現在所持續的秒數,然後將time_t型資料轉化為(unsigned)型再傳給srand函式,即還有一個經常用法,不需要定義time_t型t變數,即: srand((unsigned) time(null)); 直接傳入一個空指標,因為你的程式中往往並不需要經過引數獲得的t資料。

srand((int)getpid()); 使用程式的id(getpid())來作為初始化種子,在同一個程式中這個種子是固定的。。

C語言for迴圈,c語言中for語句是怎麼用的

為什麼?我想為你為什麼不知道原因,這是很簡單的邏輯推算題,一看就知道你的呼叫的函式返回值就是你的輸入值,我猜你是想要的結果是1,1 2,1 2 3,1 2 3 4,1 2 3 4 5是吧?呼叫函式的形參只是在你用的時候形成,當呼叫完畢就會釋放,j的運算結果不會保留在記憶體當中,因此你想要那種結果的話...

C語言中的開關語句是什麼,c語言開關語句是什麼?

你說的開關語句,應該是一種分支語句 格式如下 switch 條件 switch c語言開關語句是什麼?break在for迴圈來實現開關語句 while迴圈等迴圈流程控制中起的作用是停止執行break後面的語句,跳出本次迴圈,並跳出該迴圈控制體。c語言雖然沒有限制 if else 能夠處理的分支數量,...

C語言賦值語句是否正確的判斷,C語言中賦值語句的語法是怎樣的

c是錯誤的a t 5等價於t t 5類似的還有 b k i j 加上括號就好看了k i j 也就是將i 跟j比較的布林值賦值 相等則真 1,不等則假 0 給k c a b c 1等價於a b c 1 不能給b c這樣的表示式賦值 因為b c得到的是一個常量 所以不正確 a t t 5 b 先執行i和...