rand()、 srand()和time(0)函数

rand()函数在C标准库中用于生成0到RAND_MAX之间的伪随机数,但每次运行会产生相同的序列。为得到不同的随机数,可以使用srand()函数初始化随机数生成器,通常用time(0)作为种子,确保每次运行时种子不同。time(0)返回的是当前系统时间的秒数,可用于初始化随机数种子。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

rand()和srand()函数原型是:
void srand(unsigned int);
int rand(void);

标准C库函数中的rand()可以生成0~RAND_MAX之间的一个随机数,其中RAND_MAX是stdlib.h中定义的一个整数,它与系统有关。rand()函数没有输入参数,它直接通过rand()来引用,例如可以通过下面的语句来打印两个随机数:
printf("Random number is %d %d\n", rand(), rand() );
因为rand()按指定的顺序来产生整数,因此每次执行上面的语句,都产生相同的两个整数,所以说rand()产生的随机数并不是真正的随机数,是伪随机。 为了使程序在每次执行时都产生一个真正的随机数,我们通常通过为随机数生 成器(rand())提供一粒新的随机种子,函数srand()可以为rand()提供随机数种子。种子不同,产生的随机数也不同,srand()成为随机数生成器的初始化器。

time(0)的作用是返回现在的系统时间,并将它转换为内部格式时间。

附time()函数源码:
/***
*time.c - get current system time
*
*       Copyright (c) 1989-1997, Microsoft Corporation. All rights reserved.
*
*Purpose:
*       defines time() - gets the current system
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值