关于 rand() 函数返回值的值域的疑问

《C语言参考手册》中关于 rand() 函数有如下描述。

 

(1)rand() 函数的原型

        int rand(void);

(2)连续调用 rand 将返回 0 到 int 类型的最大可表示的正值(含该值)之间的整数值,它们是一个伪随机数生成器所产生的连续结果。在标准 C 中,rand 的上界是上 RAND_MAX 所指定的,这个值至少是 32 767。

问题:rand 返回的值包括 0 吗?一直以来都有这个疑问,也做了一些简单的实验,结果是不包括 0,但毕竟没有找到文字说不包括 0,所以一直不能肯定。虽然从 (2) 的描述来看,应该是不包括 0 的。所以还是决定向大家咨询一下,rand 返回的值域到底是 (0, RAND_MAX],还是 [0, RAND_MAX]。期待您的回答。

posted @ 2013-09-17 23:05  businessman  阅读(945)  评论(6编辑  收藏  举报