欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

const void *a 与 void *const a 的差别

更新时间: 2014-01-05 02:34:01 责任编辑: Author_N1

 

const void *a 与 void *const a 的区别
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。


原文:http://blog.csdn.net/yinjiabin/article/details/6731352
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 02:34:01
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/11513/
本文WWW.DOC100.NET DOC100.NET版权所有。