C/C++中的void 和 void *

void的含义、作用

void 即“空类型”,不表示“任意类型”。

void 的作用

1)对函数返回的限定:函数不需要返回值

2)对函数参数的限定,函数不允许接受参数

无论在C还是C++中,若函数不接受任何参数,一定要指明参数为void

在C语言中,凡是不加返回值类型限定的函数,就会被编译器作为返回整型值处理,而不是没有返回值。在C++中,每个函数必须限定返回值类型,否则编译器会报错。

void * 的含义、作用

void * 即“空类型”指针,可以指向任意类型的数据,即可以用任意数据类型的指针对void指针赋值,可以通过强制类型转换赋值给任意类型的指针。

void *表示“任意类型”的指针,主要运用与内存操作函数的形参类型和返回值类型。

例如:

extern void *memcpy(void*dest, void *src, unsigned int count);

由src所指内存区域复制count个字节到dest所指内存区域

extern void*memset(void *buffer, int c, int count);

把buffer所指内存区域的前count个字节设置成字符c

void * 支持的操作:

1)与另一个指针进行比较;

2)向函数传递void指针或从函数返回void*指针

3)给一个void *指针赋值

4)不允许使用void *指针操作它所指向的对象

按照ASCII标准,不能对void 指针进行算法操作

按照GNU标准,void * 被视为char *,可以进行算法操作。

C/C++中的void 和 void *相关推荐

  1. C/C++中的函数中的void和void* 理解

    C/C++中的void和void* 一.void void关键字表示"空类型"的概念.但是,这里的"空类型"不表示"任意类型",而是表示不存 ...

  2. 面试官:说说Java中java.lang.Void和void有什么作用和区别?

    点击上方"朱小厮的博客",选择"设为星标" 后台回复"加群",加入皮皮专属交流群 来源:http://suo.im/5p28k2 void关 ...

  3. C++中void和void*指针的含义 (指针类型的含义)

    转载自:http://blog.csdn.net/lee_shuai 指针有两个属性:指向变量/对象的地址和长度,但是指针只存储地址,长度则取决于指针的类型:编译器根据指针的类型从指针指向的地址向后寻 ...

  4. 对C/C++中的void与 void*认识

    对void 类型的认识 void类型即空类型. void常见用法 1.void作为函数返回值类型,表示该函数返回值为空没有任何返回值. 2.函数形参列表只写一个void,表示该函数没有参数 例如 vo ...

  5. 浅谈c/c++中main(),int main(),void main(),int main(void)四者之间的区别

    一.主函数也是函数 首先我们要了解C/C++中函数的定义,因为main函数也是函数,与其他函数的区别只是主函数是程序的主线而已,程序从它开始也在其中结束.一个函数由函数名.其前的类型标识符.其后小括号 ...

  6. C/C++语言void及void指针深层探索。C中void是什么意思? 为什么有时可用可不用?

    C/C++语言void及void指针深层探索.C中void是什么意思? 为什么有时可用可不用? 1.概述 许多初学者对C/C++语言中的void及void指针类型不甚理解,因此在使用上出现了一些错误. ...

  7. C++中的空指针和void * 指针

    空指针(null pointer) 空指针不指向任何对象,在使用一个指针前首先要判断是否为空. 用法: int *ptr1=nullptr; //等价于int *ptr1=0; int *ptr2=0 ...

  8. objective-c中 -(void)和+(void) 业精于勤荒于嬉,行成于思毁于随

    -(void)是实例方法,只有定义了这个类的实例,才能用实例调用这个方法. +(void)是类方法,用类名可以直接调用这个方法. 例如: @interface ClassName - (void)pr ...

  9. typedef interrupt void (*PINT)(void)的分析

    今天写程序时,在DSP2833x_PieVect.h看到typedef interrupt void (*PINT)(void)突然一愣,上网查了下发现在这是加了interrupt 中断关键字的函数指 ...

最新文章

  1. php开发面试题---php面向对象详解(对象的主要三个特性)
  2. win7怎么清理java缓存文件夹_Win7怎么清除浏览器缓存?清除电脑缓存的妙招
  3. 【鸿蒙 HarmonyOS】UI 布局 ( 相对布局 DependentLayout )
  4. python dag调度系统开发_基于机器学习的DAG调度平台
  5. php mysql关键技术_中高级PHP开发者应该掌握哪些技术?
  6. 个人博客网站文章添加目录导航
  7. python SMTP attachment
  8. 如何在 Windows Server 2003 中配置权威时间服务器
  9. Idea的svn新建分支,切换分支,合并分支
  10. Python获取打印机读数(东芝泰格)
  11. 中国互联网发展报告(2021)
  12. 3D线激光成像数学模型简析与实现
  13. thinkpad T500开机大于10分钟,黑屏
  14. 解决TextView中文英文数字混排导致的自动换行问题
  15. PHP TP模板下的微博登录(wap)
  16. html鼠标移动到图片上显示冒泡框,Bootstrap 教程 - 提示冒泡(Tooltip)
  17. 谷歌突然宣布!百度、滴滴懵了
  18. 【高效程序员系列】3 别碰鼠标——让键盘飞起来
  19. 了解微信小程序、掌握微信小程序开发工具的使用、了解小程序的目录以及文件结构、掌握小程序中常用的组件、掌握WXML、WXSS、WXS的基本使用
  20. 对抗生成网络(GAN)简介及生成数字实战

热门文章

  1. HTML之表格、表单
  2. Markdown 图片左右对齐、居中、大小设置
  3. Python(4)循环嵌套算法及冒泡排序
  4. Java基础知识每日总结(19)---Java输入输出流、文件、递归
  5. Keras实例教程(4)之迁移学习
  6. [Latex] 自动换行 | 正文两端对齐
  7. flex 居中并两端对齐
  8. byteBuffer的使用之道
  9. 【性能策略】限流策略
  10. java单例模式构造器初始化_秒懂java单例模式,java私有构造器与一夫一妻制