常量指针和指针常量

 引言:第一次写博文,那就写一下我在学习c++时常会疑惑的一点东西,那就是常量指针和指针常量

 

一.定义格式:

1.指向常量的指针(常量指针)

 

const  类型名 指针变量名;

类型名 const  * 指针变量名;

 

2.常指针(指针常量):

 

类型名 * const 指针名;

 

假如:"const"== 常量  "*"== 指针,那么我们就可以这样读,“按顺序读”。

 

二.驱除疑云

1.常量指针:

const int i = 2;

const int j = 3;

const int *p = &i;

const int *q = &j;

    p = q;

//p 是一个指针,指向const int 的指针,你说const int i;  i 的值能变吗?(肯定不能),所以p所指向的常量是不能更改的,而p可以指向其他的常量所在的地址呀!


const int *p       

          

假如p指向地址0x00000001 及 常量i 的地址 ,同时p也可以指向0x00010001及常量j的地址,但是0x00000001地址里的数据2是不能改变的,常变量存在静态数据区(除非程序结束)。                           

 

2.指针常量:

int i = 2;

int j = 3;

int * const p = &i;

int * const q = &j;

 // p = q;

 i = 4;

 

// p是一个常指针,什么是常指针?你一定会联想到常量,对就是这样子滴!常量的指针,所以你说既然是常量,这种指针还能改变吗?(当然不能啦!)但是常指针所指向的值能变吧!

int * const p    

p同样初始化指向存储i的地址 0x00000001,当给p赋新地址时,或指向存储j的地址就会报错!    


Do you understand            


结语:本人理解如此,如有误,大家尽可谦虚交流!  

   

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值