指针和const

一.定义

       一般,说到指针和const,就分两种:const指针和指向const的指针。const指针是指针变量的值一经初始化,就不可以改变指向,初始化是必要的;而指向const的指针是说指针指向的变量是const的(其实这种说法也是不太准确的,和const引用有点像)可以这样理解:一种指的是你不能修改指针本身的内容,另一种指的是你不能修改指针指向的内容(只是说不能通过指针的方式去修改,如果变量本身不是const的,其实是可以通过其他的方式去修改)。

       声明指针时,可以在类型前或后使用关键字const,也可在两个位置都使用。例如,下面都是合法的声明,但是含义大不同:

const int * pOne;    //指向整形常量 的指针,它指向的值不能修改
int * const pTwo;    //指向整形的常量指针 ,它不能在指向别的变量,但指向(变量)的值可以修改。 

const int *const pThree;  //指向整形常量 的常量指针 。它既不能再指向别的常量,指向的值也不能修改。

       理解这些声明的技巧在于,查看关键字const右边来确定什么被声明为常量 ,如果该关键字的右边是类型,则值是常量;如果关键字的右边是指针变量,则指针本身是常量。下面的代码有助于说明这一点:

const int *p1;  //the int pointed to is constant 
//即从离变量名最近的开始解读,首先‘*’代表p1首先是个指针,然后这个指针指向的变量是const的。
int * const p2; // p2 is constant, it can't point to anything else
//首先,‘const’代表p2首先是个常量,然后这是个“int *”类型的常量,即常量指针。

       还有个技巧,通过上面的观察我们不难总结出一点规律,是什么呢?这个规律就是: 指向const的指针(指针指向的内容不能被修改)const关键字总是出现在的左边而const指针(指针本身不能被修改)const关健字总是出现在的右边,那不用说两个const中间加个肯定是指针本身和它指向的内容都是不能被改变的,不过还是

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值