评论(0)

C/C++语言void及void指针深层探索

2005-09-21 10:10 宋宝华 A+

  下面的代码执行正确:

//示例:memset接受任意类型指针
int intarray[100];
memset ( intarray, 0, 100*sizeof(int) ); //将intarray清0

//示例:memcpy接受任意类型指针
int intarray1[100], intarray2[100];
memcpy ( intarray1, intarray2, 100*sizeof(int) ); //将intarray2拷贝给intarray1


  有趣的是,memcpy和memset函数返回的也是void *类型,标准库函数的编写者是多么地富有学问啊!

  规则五 void不能代表一个真实的变量

  下面代码都企图让void代表一个真实的变量,因此都是错误的代码:

void a; //错误
function(void a); //错误


  void体现了一种抽象,这个世界上的变量都是“有类型”的,譬如一个人不是男人就是女人(还有人妖?)。

  void的出现只是为了一种抽象的需要,如果你正确地理解了面向对象中“抽象基类”的概念,也很容易理解void数据类型。正如不能给抽象基类定义一个实例,我们也不能定义一个void(让我们类比的称void为“抽象数据类型”)变量。

4.总结
  小小的void蕴藏着很丰富的设计哲学,作为一名程序设计人员,对问题进行深一个层次的思考必然使我们受益匪浅。
打开客户端,无广告困扰,阅读更专注

热门新闻

你只用微信来聊天?微信能干的这些事你都知道么

你只用微信来聊天?微信能干的这些事你都知道么

联络聊天 32

你可能是正版的受害者!谈谈正版游戏的坑爹事

你可能是正版的受害者!谈谈正版游戏的坑爹事

观点评论 48

阴阳师手游黑童子御魂最强搭配攻略

阴阳师手游黑童子御魂最强搭配攻略

游戏攻略 0

王者荣耀第七期体验服申请时间预告 第七期体验

王者荣耀第七期体验服申请时间预告 第七期体验

游戏攻略 2

年度最性感游戏!《尼尔:机械纪元》销量破百万

年度最性感游戏!《尼尔:机械纪元》销量破百万

业界新闻 9

炉石传说龙战卡组推荐 不带新卡依然强势

炉石传说龙战卡组推荐 不带新卡依然强势

游戏攻略 2

目睹只存在传说中的建筑!好玩的虚拟建筑App

目睹只存在传说中的建筑!好玩的虚拟建筑App

Android资讯 2

王者荣耀马可波罗怎么玩?马可波罗出装攻略

王者荣耀马可波罗怎么玩?马可波罗出装攻略

游戏攻略 0

王者荣耀体验服资格申请时间表 持续更新中

王者荣耀体验服资格申请时间表 持续更新中

游戏攻略 1

阴阳师现世召唤阵图片ssr概率最高时间点

阴阳师现世召唤阵图片ssr概率最高时间点

游戏攻略 0

推荐内容