void型指针(void指针简述)
为什么这里单独提到空指针类型?主要是因为指针类型比较特殊。Void类型很容易被认为是空的,但是对于指针来说,它并不意味着空,而是不确定
为什么这里单独提到空指针类型?主要是因为指针类型比较特殊。Void类型很容易被认为是空的,但是对于指针来说,它并不意味着空,而是不确定性。很多情况下,在声明一个指针的时候,可能不知道它是什么类型,或者指针指向的数据类型有很多种,或者程序员只是想用一个指针操作一个内存空间。此时指针可以声明为void类型。但问题是,由于void类型,当某个数据类型被解引用时,编译器会根据该类型占用的空间对相应的数据进行解引用,例如int p,那么p就会被编译器解引用为p指针地址的4字节的空间大小。但是对于空指针类型,编译器如何知道要解引用的内存大小呢?先看一段代码:
#include int main(int argc,char * * argv){ int a=10;void * p;p=a;printf(p=% d \ n ,* p);返回0;}编译上述程序时,会发现编译器报错,无法正常编译。
这说明编译器真的可以反引用时不能确定*p的大小,所以这里需要告诉编译器p的类型或者*p的大小。怎么会?它这很简单。您可以使用转换类型,如下所示:
*(int*)p以便上面的程序可以写成如下形式:
#include int main(int argc,char * * argv){ int a=10;void * p;p=a;printf(p=% d \ n ,*(int *)p);返回0;}void指针没有指定类型的指针,即指针只有地址数据属性,解引用时没有空间大小属性。
审计唐子红
推荐阅读
- alfa romeo车标含义?(阿尔法罗密欧车标)
- 华为鸿蒙os如何操作 华为鸿蒙os2.0系统官网报名入口
- 14款沃尔沃s60l二手车能买吗?(沃尔沃s60为什么贬值厉害)
- power mp3 wma converter(mp3格式转换器)软件介绍(power mp3 wma converter(mp3格式转换器))
- 42岁李贞贤宣布平安生女,网友:歌声击退山贼的那个
- 热火朝天的高铁WiFi迟迟未到(5G能否破局)
- 华为手机性价比最高是哪几款2022? 华为哪款手机性价比高最值得入手
- 进口捷豹全部车型报价?(捷豹报价大全价格表)
- 韩庚江铠同疑相恋,两人同游马尔代夫遭曝光
- 八卦格字帖软件介绍(八卦格字帖)
- 虚拟机 操作系统(操作系统整合:虚拟机管理程序的下一步)
- 比亚迪f6参数配置?(比亚迪f6)
- 奥沙利文获世锦冠军,奥沙利文得了几次世锦赛冠军
- Evel Knievel手游游戏介绍(Evel Knievel手游)
- 索尼wi1000x拆解(SONYNZW-X1000系列高清拆解图集)
- 4座硬顶敞篷跑车都有哪几款?(4门4座硬顶敞篷车推荐)
- 艺术体操团体全能决赛,艺术体操团体全能决赛中国
- 工人物语6通用修改器游戏介绍(工人物语6通用修改器)
- 简述电机换向器的工作原理图(简述电机换向器的工作原理)
- Atheros-AR5007EG无线网卡驱动软件介绍(Atheros-AR5007EG无线网卡驱动)