C C++-- void *p 通用指针 or 泛指针

*void p 通用指针 or 泛指针

通常指针有两个属性:指向变量/对象的地址和类型,指针的值存储了所指向变量/对象的地址,类型决定了变量/对象所占内存的长度。

void *p 称为通用指针 或 泛指针,它在定义时,没有指定类型。可以使用void指针来代替其他类型指针,或者使用其他类型指针代替void指针。

例:

		int a = 1;
		char b = 'A';
		void *ptr = NULL;
		ptr = &a;  //用void指针指向int型的地址
		ptr = &b;  //用void指针指向char型的地址

由于void指针没有指定所指向变量/对象 的数据类型,需要使用正确的类型进行前置转换才能对所指向数据进行街引用。

例:

	//void型指针解引用须做类型指定
	*(int *)ptr = 10;

此外,由于不知道void指针的类型,除非对void指针进行强制类型转换,否则不能参与指针运算,如无法对其进行自增操作(ptr++),编译器不知道void指针需要增加多少。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值