074 万能的箱子(void*)
来源:互联网 发布:加工中心常用编程代码 编辑:程序博客网 时间:2024/05/29 17:04
【实例描述】
指针有一个变量类型为void*,它可以指向任意类型的数据,即任意类型的指针可以赋值给void*,但反过来,void*不可以赋值给其他类型的指针,除非采用强制类型转换,本实例以万能的箱子演示void*指针如何被任意类型的指针变量赋值,效果如图:
实现过程:
定义变量a(char型)、b(整型),并且进行初始化。函数decrease()用于将变量的值减1,该函数的输入参数是void*类型,因此可以实现任意类型变量的减1功能(本实例只实现对char型和int型变量的功能操作),代码如下:
#include <QCoreApplication>#include <iostream>using namespace std;void decrease(void* data,int psize) //减法函数{ switch(psize) { case 1: char* pchar; //字符 pchar =(char*)data; //void*转换为char型 --(*pchar); //减法 break; case sizeof(int): //整型 int *pint; pint =(int*)data; //void*转换为int型 --(*pint); //减法 }}int main(int argc, char *argv[]){ QCoreApplication a(argc, argv); char a1='d'; int b=102; decrease(&a1,sizeof(a1)); decrease(&b,sizeof(b)); cout<<a1<<","<<b<<endl; return a.exec();}
ps:
void*指针赋值给其他类型指针也需要类型转换
0 0
- 074 万能的箱子(void*)
- 万能指针void *的今世今生
- void指针 万能指针
- c++ 万能指针-void
- 万能指针: void*
- void指针 万能指针
- 万能指针void
- 万能参数void*
- 妙用void *型指针(万能指针|泛型指针)
- void main(void x)两个void的区别 -----void与void*详解
- 技巧:用 C 语言实现程序的多态性: C中只有两种类型int 和void *, 万能指针void *
- 002 箱子的容量(变量)
- 联合 枚举 双指针 万能指针void*
- void (*p)() 、 void *p()和void *(*p)(void)的区别
- 一个箱子的推箱子算法
- void EXTI_Configuration(void)
- (void*)0的使用
- void *的错误(error C2036: 'void *' : unknown size)
- css中BFC格式化上下文
- 3D Model & 图片类网站
- [kuangbin带你飞]专题四 最短路练习 C POJ 1797
- php的setcookie使用详解
- Mysql有两种存储引擎:InnoDB与Myisam
- 074 万能的箱子(void*)
- angularjs中post请求进行跨域
- 贝叶斯推断及其互联网应用(二):过滤垃圾邮件
- Intel Code Challenge Final Round (Div. 1 + Div. 2, Combined) -- C. Ray Tracing(STL乱搞)
- ConcurrentModificationException异常以及iterator迭代器的使用原理
- Subscriber class .NewsFragment and its super classes have no public methods
- ArcGIS Server9.3的瓦片数据迁移到ArcGIS Server10.3上
- regionprops统计被标记的区域的面积分布,显示区域总数。
- ubuntu安装nvidia官方驱动(安装CUDA7.5之后,找不到TITAN显卡的解决方法)