C++ --- Const修饰指针产生的类别

一、类别一:Const 修饰整个指针 --- 常量指针

二、类别二:Const 修饰指针的常量 --- 指针常量

三、类别三:Const 同时修饰指针和指针常量

四、区分指针常量和常量指针的记忆方法

一、常量指针(const int *p = &a)

1.1概念

        即所定义的指针指向的是常量,且const修饰的是整个指针

1.2特点

        指针的指向可以修改,但是指针指向的值不可以修改。

1.3代码

        int a = 10;

        int b = 20;

       const int *p = &a; 

        p = &b; (由常量指针的特点知,该操作为改变常量指针的指向是可行的)

        *p = 20;(由常量指针的特点知,该操作为改变常量指针的指向的值是不可行的)

二、常量指针( int * const p = &a)

2.1概念

        即所定义的指针指向的是常量,且const修饰的是整个指针变量

2.2特点

        指针的指向不可以修改,但是指针指向的值可以修改。

2.3代码

        int a = 10;

        int b = 20;

        int * const p = &a; 

        p = &b; (由指针常量的特点知,该操作为改变常量指针的指向是不可行的 ×)

        *p = 20;(由指针常量的特点知,该操作为改变常量指针的指向的值是可行的 √)

三、同时修饰( const int * const p = &a)

3.1概念

        即所定义的指针指向的是常量,且const即修饰的是整个指针也修饰指针常量

3.2特点

        指针的指向和指向的值都不可以修改。

3.3代码

        int a = 10;

        int b = 20;

        int * const p = &a; 

        p = &b; (由同时修饰的特点知,该操作为改变常量指针的指向是不可行的 ×)

        *p = 20;(由同时修饰的特点知,该操作为改变常量指针的指向的值是不可行的 ×)

四、记忆方法

     const 翻译为常量,*翻译为指针

     指针常量:

        代码为:int * const p = &a;(*在const前,故翻译为指针常量)

        此时const修饰的是指针p,所以此时不能修改指针的指向。

    常量指针:

        代码为:const int * p = &a;(const在*前,故翻译为常量指针)

        此时const修饰的是*,所以此时*的操作不能使用(即*p是不能操作的)

        

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值