栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

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

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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是不能操作的)

        

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1022447.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号