码迷,mamicode.com
首页 > 其他好文 > 详细

const修饰指针

时间:2014-10-10 09:59:24      阅读:157      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   sp   div   on   log   amp   ef   

关于const修饰指针的情况,一般分为如下4种情况:

int b =500;
const int *a =&b;    //情况1
int const *a =&b;    //情况2
int* const  a =&b;    //情况3
const int* const a =&b;    //情况4

如何区别呢?
  

     如果const 位于星号的左侧,则const 就是用来修饰指针所指向的变量,即指针指向为常量;

     如果const 位于星号的右侧,const就是修饰指针本身,即指针本身是常量。

1.情况1和2相同,都是指针所指向的内容为常量,这种情况下不允许对内容进行更改操作。

  例如

int b =500;
const int *a =&b;    //情况1
*a =600;   //错误

  但也有别的办法改变*a的值,一个是通过改变b的值,另一个是使a指向别处 a = &c 。

对于情况1和2,可以不进行初始化。因为虽然指针内容是常量,但指针本身不是常量。

2.情况3 为指针本身是常量,不能对指针本身进行更改操作,而指针所指向的内容不是常量。

  因此,定义时必须同时初始化。

3.情况4 为指针本身和指向的内容均为常量。

 

const修饰指针

标签:style   blog   color   sp   div   on   log   amp   ef   

原文地址:http://www.cnblogs.com/zhanbiqiang/p/4014924.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!