const void *a 与 void* const a

来源:互联网 发布:什么牌子油烟机好 知乎 编辑:程序博客网 时间:2024/05/17 01:52

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。

0 0
原创粉丝点击