一般情况下,指针的值只能赋给相同类型的指针。但是有一种特殊的 void类型指针,可以存储任何类型的对象地址,就是说任何类型的指针都可以赋值给void类型的指针变量。经过使用类型显示转换,通过void类型值的指针便可以访问任何类型的数据。

主要注意的是虽然通过void类型值的指针便可以访问任何类型的数据,但是不能声明 void类型的变量去访问任何类型的数据。
例如:

void void_variate; // 这种声明是错的,不能声明void类型的变量

正确的使用方法如下:

# include <iostream>using namespace std;int main(){void *pv;  // 声明void类型的指针 int i = 10;pv = &i;    // void 类型指针指向整型变量 int *pint = static_cast<int *>(pv);   // void 类型指针赋值给 int类型指针 cout << "*pint = " << *pint << endl;  // 打印 *pint 的值return 0;
}

运行结果:

*pint = 10

注:void指针一般只在指针所指向的数据类型不确定时使用。

C++ void类型指针的使用相关推荐

  1. void类型指针 指针的各种组合

    void类型指针: 任何指针都可以赋值给void指针 void指针赋值给其它类型指针时都必须经过类型转换 void转换前不能参与指针运算,除非转换 本质:void指针只知道指向变量/对象的起始地址,却 ...

  2. c语言使用node类型指针,C语言利用 void 类型指针实现面向对象类概念与抽象

    不使用C++时,很多C语言新手可能认为C语言缺乏了面向对象和抽象性,事实上,C语言通过某种组合方式,可以间接性的实现面对对象和抽象. 不过多态和继承这种实现,就有点小麻烦,但是依然可以实现. 核心: ...

  3. 无类型指针、空指针和野指针

    1.无类型指针:void *p: 不指定它指向具体哪种数据类型.可以通过强制转化将void *转化为其他类型指针,也可以用(void *)将其他类型指针强制转化为void类型指针.指针之间赋值需要类型 ...

  4. 【C语言】void 和 void* 类型

    一. void 类型 1. 为何不能定义 void 类型的变量 为什么不能定义 void 类型的变量?因为它是空类型,不能够为变量提供空间吗? 定义变量的本质是开辟空间,我们用 sizeof 来计算 ...

  5. c语言void形式的函数,C语言的void类型

    void类型 void的字面意思是"无类型",void * 则为无类型指针,void *可以指向任何类型的数据. void几乎只有"注释"和限制程序的作用. v ...

  6. 关于空指针(指针指向为NULL)和void类型的指针的理解

    正在学C,书上老说空指针,或者说void指针,对于我这样的生手来说,理解非常容易造成混淆,因为void这个单词的意思也是空,到底空指针的意思是指指向地址为空的类型呢,还是指void类型的指针呢 (1) ...

  7. C语言 void和void *(无类型指针)

    void 关键字 void的字面意思是"无类型",void *则为"无类型指针",void *可以指向任何类型的数据. void几乎只有"注释&quo ...

  8. void 类型的指针

    void指针是空类型的指针,也称为无类型的指针,它不指向任何类型,即它仅仅是个地址.因此void指针不能进行指针运算,也不能取其所指向的数据的值 只有将void指针跟其他类型的指针相关联,才能使用他, ...

  9. void类型及void指针

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

最新文章

  1. python可以自学吗-没学过编程可以自学python吗
  2. FPGA实验三——计数器的实现并用SignalTap验证
  3. Linux sftp用法
  4. vc文件夹选择对话框
  5. React(76)--react 主题开发目录
  6. ERROR 3009 (HY000): Column count of mysql.user is wrong. Expected 45, found 42. Created with MySQL 5
  7. 最惨2019:超300家创业公司死亡名录
  8. 系统补丁自动批量安装
  9. 河北省计算机网络技术专接本考什么,河北计算机专接本考什么
  10. HDU2551 竹青遍野【数学计算+水题】
  11. python exec函数和eval函数_Python exec()和eval()的使用注意事项
  12. 管理新语:依照员工能力,可以分为飞天型、登山型、平路型
  13. 《我是一只IT小小鸟》
  14. 安徽掀起新一轮大规模清房行动 官员急抛房产
  15. 共享茶室小程序开发解决方案
  16. 2020科目一考试口诀_科目一口诀顺口溜2020
  17. 为什么程序员应该写博客?用什么博客系统?
  18. Prisma初体验【逆向生成数据模型】
  19. codeforces 417D Cunning Gena
  20. 主流的企业级报表工具,国内报表工具排名前列

热门文章

  1. Android5.1.1 - zygote中获取系统服务时抛出异常
  2. 关于用户升级到MacOS10.10系统后versions崩溃的问题
  3. 【Ubuntu】Windows硬盘安装Ubuntu14.04
  4. Excahange2007邮件收件人的管理
  5. 汇编的8种寻址方式,以及2个默认段寄存器
  6. Android - View绘图原理总结
  7. jQuery遍历之next()、nextAll()方法使用实例
  8. 安装python及web.py
  9. 用Hadoop进行分布式并行编程
  10. 封装一个类搞定90%安卓客户端与服务器端交互