分享

关于const void *Pointer 和 void *const Pointer问题

 兰宝888 2019-08-20


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;     nt n=2;

a=&m;    a=&n;//编译不成功。

可以这么说,const void *a;中const修饰的是*a。在void* const  a中,const 修饰的是a。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多