const void *a 与 void* const a

本文详细解释了C++中const void*与void*const的区别,包括它们如何限制指针及其所指向内容的修改,并通过具体示例展示了这两种指针类型的应用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

const void *a

定义了一个指针a,a可以指向任意类型的值,但它指向的值必须是常量。

在这种情况下,我们不能修改被指向的对象,但可以使指针指向其他对象。

例如:

const void *a;
*a=0x123;//是编译通不过的,因为*a中放的是个const值。const值是不能被改变的。

const int  m=1;
const int n=2;
a=&m;
a=&n;
//编译可以通过。


void* const  a

定义了一个const指针a,a可以指向任意类型的值,但a是指向某个对象的常量指针。

我们不能修改指针中存储的地址,但可以修改对象的值。

例如:

void* const  a;
*a=0x123;  //是没问题的

a=(void*)&b; //是不行的,因为a是const变量。如:
int  m=1;
int n=2;
a=&m;  //编译不成功
a=&n;  //编译不成功


const void *a中,const修饰的是*a;

void* const  a中,const 修饰的是a。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值