指向void的指针
来源:互联网 发布:逆战ak12淘宝有cdk吗 编辑:程序博客网 时间:2024/06/04 18:50
指向void的指针是个非常有趣的东西,一个指向任何对象类型的指针都可以赋值给类型为void *的变量,void *可以赋值给另一个void *,两个void *可以比较是否相等(当两个指针比较时,是看它们是否指向同一块内存地址),而且可以显示的将void *转换到另一个类型。初次之外,其他任何对void *的操作都是不安全的,因为编译器不知道它实际指向哪个对象。请看下面的实例:
void f(int *pi)
{
void *pv =pi; //可以,从int*到void*的隐式转换
*pv; //错误:void*不能间接引用
pv++; //错误:void* 不能增量(因为不知道被指对象的大小)
int *pi2 = static_cast<int *>(pv); //可以,被显示的转换回int*
double *pd1 = pv; //错误
double *pd2 = pi; //错误
double *pd3 = static_cast<double *>(pv); //不安全的
}
==============================================================================================================
void*的用途有两点:
1、需要向函数传递一个指针,而又不能对对象的类型做任何假设;
2、从函数返回一个无类型的对象。要使用这样的对象就必须通过显示的类型转换。
- 指向void 的指针
- 指向void的指针
- 指向void类型的指针
- 常量指针 const void * 指针常量 void* const 指向常量的指针常量 const void* const
- 指向常量的指针,指针常量,void类型指针
- 谈void changeString(char **s),指向指针的指针
- 从"void*"到指向非"void"的指针的转换要求显式类型转换错误
- void*不是指向对象的类型(这种类型的指针不能指向一个实体)
- 关于空指针(指针指向为NULL)和void类型的指针的理解
- 如何获取变量类型及void指针中保存的指针指向什么类型的变量
- C/C++void*_指向指针的指针_范例对比
- 指向指针的指针
- 指向指针的指针
- 指向指针的指针
- 指向指针的指针 **
- 指向指针的指针
- 指向指针的指针
- 指向指针的指针
- Oacle 如何强制刷新Buffer Cache
- S3C6410启动模式介绍
- Android蓝牙API之BluetoothAdapter类
- 江苏镇江江堤一个月内第二次出现垮塌-决堤-坍塌-非法采砂
- 动态链接库的使用方法
- 指向void的指针
- 编译器错误消息: CS0016: 未能写入输出文件“c:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\yami
- 在升序数组中选取2个数,使其和等于一个输入数字n
- vs2010快捷键-- 摘
- JSP中获取session
- log4j.properties相关配置(1)
- java 反射之自定义注解
- Visual C++.NET GDI+编程基础
- SharePoint 2010 Step By Step : Customize Master Page(1)