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

const的指针

时间:2015-01-04 17:23:08      阅读:151      评论:0      收藏:0      [点我收藏+]

标签:

C++用const修饰指针共有四种写法(前两种一样):

int a = 100,b = 10;

1  const int *p = &a;
2  int const *p = &a;
3  int *const p = &a;
4  const int *const p = &a;


1、首先说第一种,第一种定义了一个指向常量的指针,当然也可以指向变量,但是指针本身并不是常量,所以可以改变指针的指向,像这样:

p = &b;

*p = b; //错误,因为p是指向const的指针,不能通过它改变所指向对象的值。所谓指向产量的指针,仅仅要求不能通过该指针改变对象的值,而没有规定那个对象的值不能通过其他途径改变。

技术分享

2、第二种第一的方法和第一种完全一样,所以请忘掉它,只用第一种即可。

3、这种指针被叫做常量指针,这里的const可以看作是用来修饰p的,就是说此处的指针是一个常量指针,一旦被创建,它所指向的地址就不能再改变,所以要在定义的时候初始化。

p = &b;//错误,因为p是静态指针,已经指向了a的地址,不能再改变
&p = b;//正确,p不是指向const对象,而是指向int型的a,a是变量  PS:要想存放常量对象的地址,只能使用指向常量的指针

4、相当于前面的综合,既不能改变指针的指向,也不能通过指针改变它指向对象的内容。

const的指针

标签:

原文地址:http://my.oschina.net/u/1385723/blog/363570

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