大学IT网 - 最懂大学生的IT学习网站! QQ资料交流群:367606806
当前位置:大学IT网 > C技巧 > void及void指针含义的深刻解析

void及void指针含义的深刻解析(2)

关键词:指针含义解析深刻void  阅读(1182) 赞(18)

[摘要]本文是对void及void指针含义的深刻解析的讲解,与大家分享。

  这样,任何类型的指针都可以传入memcpy和memset中,这也真实地体现了内存操作函数的意义,因为它操作的对象仅仅是一片内存,而不论这片内存是什么类型。如果 memcpy和memset的参数类型不是void*,而是char*,那才叫真的奇怪了!这样的memcpy和memset明显不是一个“纯粹的,脱离低级趣味的”函数!

下面的代码执行正确: //示例:memset接受任意类型指针 int intarray[100];[Page] 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蕴藏着很丰富的设计哲学,作为一名程序设计人员,对问题进行深一个层次的思考必然使我们受益匪浅。

«上一页12下一页»


相关评论