对VC中的void理解

void从字面理解是无类型

 

他只要用于:

1.对函数返回的限定;

2.对函数参数的限定。

 

下面举几个例子来说明void关键字的一些常见问题

[第一种]

我们知道两个指针之间可以相互赋值,但必须是同种类型

比如:

   1: float *p1;
   2: int   *p2;
   3:  
   4: p1=p2//这个时候将会报错,cant conver int to float
   5:  
   6: //---------正确的写法如下(进行强转)------
   7: p1=(int *)p2;

但是如果是void类型的指针,就无需进行强转,任何类型的指针都可以给他赋值

   1: void *p1;
   2: int  *p2;
   3:  
   4: p1=p2;//正常执行

 

但是相反的,void类型的指针就不能赋值给其他类型的指针

[第二种]

我们知道vc和pascal不同,pascal的函数和过程有明显的关键字区别,如

 

函数为function

过程为procedure

 

函数是有返回值的,过程无

但是vc里面没,所以这个时候就需要void了

为了让我们的代码易读性和健壮性更好,无返回值的函数(也就是过程)必须指明为void类型函数

 

void是一种抽象的类型,他即可以是任何类型的数值,这是他的优点,但同时又是他的局限性,以为他无自己的类型,好比人妖,既不是男也不是女,但他又是男又是女

所以void是一个不能定义实例的抽象类型

转载于:https://www.cnblogs.com/sudigua2010/archive/2011/12/26/2301454.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值