设为首页 加入收藏

TOP

C/C++语言void及void指针深层探索
2014-11-23 20:15:04 来源: 作者: 【 】 浏览:64
Tags:C/C 语言 void 指针 深层 探索

  1.概述


  许多初学者对C/C++ 语言中的void及void指针类型不甚理解,因此在使用上出现了一些错误。本文将对void关键字的深刻含义进行解说,并详述void及void指针类型的使用方法与技巧。

  2.void的含义


  void的字面意思是“无类型”,void *则为“无类型指针”,void *可以指向任何类型的数据。

  void几乎只有“注释”和限制程序的作用,因为从来没有人会定义一个void变量,让我们试着来定义:


  void a;


  float *p1;
  int *p2;
  p1 = p2;


  p1 = (float *)p2;


  而void *则不同,任何类型的指针都可以直接赋值给它,无需进行强制类型转换:


  void *p1;
  int *p2;
  p1 = p2;


  但这并不意味着,void *也可以无需强制类型转换地赋给其它类型的指针。因为“无类型”可以包容“有类型”,而“有类型”则不能包容“无类型”。道理很简单,我们可以说“男人和女人都是人”,但不能说“人是男人”或者“人是女人”。下面的语句编译出错:


  void *p1;
  int *p2;
  p2 = p1;


  提示“'=' : cannot convert from 'void *' to 'int *'”。


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇C++程序中导出Word文档的简易方法 下一篇用C++实现跨平台游戏开发之Irrlic..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: