【C】揭秘rand()函数;
相信只要是程序猿都会知道rand()函数是用来取随机数的一个库函数,但是它出的结果真的是一组随机数吗?我们来看看这段代码运行的结果: 1 #include<stdio.h> 2 #include<stdlib.h> 3 int main(void) 4 { 5 int j; 6 for(j=0;j<5;j++) 7 { 8 printf("rand():%d\n",rand()); 9 } 10 } linux下gcc每次运行结果如下: windows vc6.0每次运行结果如下:(本人windows系统为64位机) (由于编译器的不同,可能显示的结果也不同吧!) rand()函数不是随机的吗?怎么每次运行的结果都是一样的?其实计算机也不像人们想象的那么智能,它也是按照人们的思想来随机出数的。 本人在linux下查找头文件没有找到rand()函数的定义,上网查了一下也没找到,说是被封装到库中了。若是有大牛们看到这篇文章,请帮帮小弟解决心中的疑问吧! 那么如何用rand()函数获取你想要的取值范围呢?其实rand()函数的取值范围在0~RAND_MAX之间; 那么什么是RAND_MAX呢? linux下的RAND_MAX值为2147483647(二进制32位) windows下的RAND_MAX值为32767(二进制16位) 由此可见RAND