C++中的const与指针

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

       常量指针定义“const int * pi=&a”,告诉编译器,*pi是常量,不能修改。

      

例如:

       const int a = 1;

                const int b = 2;

 

       const int * pi=&a;

       *pi = 3;//error, 指针指向的常量不可以修改

       pi = &b;//ok, 指针值可以修改

2、指针常量

      指针常量定义“int * const pi=&a", 告诉编译器,pi是常量,不能修改,但是*pi可以修改。

 

在指针名前加const,表示指针本身是常量。在定义指针常量时必须初始化。

例如:

        char * const pi = "abcd";

        pi = "edf";   //error,指针常量不可以改变指针值

        *pi = ‘w’;   //ok,pi指向的内容为“wbcd”

        *(pi+1)= ‘y’; //ok,pi指向的内容为wycd

        *pi++=‘y’;//error,不可以改变指针值

 

        const int b = 2;

        int * const pc = &b;  //error,不可以将const int * 转换成  int *

3、指向常量的指针常量(常量指针常量)

      常量指针常量定义“const int * const pi = &a”,告诉编译器, pi和*pi都是常量,都不可以修改。

 

例如:

        int a = 1;

                  int b = 2;

        const int * const pi = &a;   //ok, 可以将int *转换成const int *

        pi = &b;  //error, 指针值不可以修改

        *pi = 3;//error, 指针指向的内容也不可以修改

        a = 4;//ok

       

      

 

 

 

               

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值