void的用法(拓展rand、size_t函数)

void关键字在C语言中有多重意思,用在不同的位置表示不同的意义

1、在函数定义时,放在括号中,表示函数没有参数,如:

int random( void ) //这时的void可以省略,写成:int random()也可以
{
return rand()%10; //返回一个10以内的随机整数
}

拓展:rand( )用于产生一个伪随机的无符号整数。
rand()%10表示将产生的随机数对10求余,结果为余数,整体表示产生0到9的随机数。
用rand() % 10;来生成 0 到 9 之间的随机数这种方法是不可取的,比较好的做法是: j=(int)(n*rand()/(RAND_MAX+1.0))产生一个0到n之间的随机数

#include<stdio.h>
#include<stdlib.h>  // rand函数所需得到头文件
void main() 
{ 
    int i,j;  
    for(i=0;i<10;i++)  
    {
      j=1+(int)(10.0*rand()/(RAND_MAX+1.0));   // 产生0到10之间的随机数
      printf("%d ",j); 
    }  
}

2、在函数定义时,表示没有返回值,如:

void main( void )
{
printf("%d\n", random() );
}

**3、用在*前,表示任意类型指针,**如:

int compare( void *a, void *b )
{
int *pa=(int *)a, *pb=(int *)b; //强制转换成int *
return (*pa-*pb);
}
int compare( void *a, void *b )
{
char *pa=(char *)a, *pb=(char*)b; //强制转换成char*
return strcmp(pa,pb);
}

在很多头文件中有这样的函数原型声明,如:
void *malloc( size_t ) ; //malloc函数原型的声明
拓展
size_t 全称size type,一种用来记录大小的数据类型。
通常用sizeof(XXX)操作,所得到的结果就是size_t类型。因为size_t类型的数据其实是保存了一个整数,所以它也可以做加减乘除,也可以转化为int并赋值给int类型的变量。
内核中先定义:typedef int size_t; 然后在特定的编码需要下用size_t来替代int(typedef为重定义函数)
类似的还有wchar_t就是wide char type,“一种用来记录一个宽字符的数据类型”。
ptrdiff_t就是pointer difference type,“一种用来记录两个指针之间的距离的数据类型”。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值