zoukankan      html  css  js  c++  java
  • C++指针常量与常量指针的区别?

    参考来自:https://www.jb51.net/article/86519.htm

    我们先回顾下,什么是指针?什么是常量?指针是一种特殊的变量,它里面存储的内容是内存地址。常量是指其里面存储的内容不能发生改变的量。明白了这两个概念后,我们现在正式进入指针常量与常量指针。

    1.指针常量与常量指针的概念

    指针常量就是指针本身是常量,换句话说,就是指针里面所存储的内容(内存地址)是常量,不能改变。但是,内存地址所对应的内容是可以通过指针改变的。

    常量指针就是指向常量的指针,换句话说,就是指针指向的是常量,它指向的内容不能发生改变,不能通过指针来修改它指向的内容。但是,指针自身不是常量,它自身的值可以改变,从而指向另一个常量。

    2.指针常量与常量指针的声明

    指针常量的声明:数据类型 * const 指针变量。

    常量指针的声明:数据类型 const * 指针变量 或者 const 数据类型 *指针变量。

    常量指针常量的声明:数据类型 const * const 指针变量 或者 const 数据类型 * const 指针变量。

    3.指针常量与常量指针的使用

    #include <iostream>
    
    int main(int argc, const char * argv[]) {
        
        using namespace std;
        
        int i=5,j=6;
        //指针常量
        int* const p1 = &i;
        *p1=500;
        //p1=&j;
        cout << "i= " << i << endl;//500
    
        //常量指针 两种写法等价
        //int const *p2 = &j;
        const int *p2 = &j;
        p2=&j;
        //*p2=600;
        cout << "j= " << j << endl;//6
        
        //常量指针常量 通过地址/内容都不能改
        int const* const p3 = &i; //p3=&j; //*p3=1000;
        const int* const p4 = &i; //p4=&j; //*p4=1000;
        
        
        return 0;
    }
    
    
    

     关于区分指针常量的一个小技巧:const后的内容为不能修改的。例如指针常量 int * const p = &a;则表示指针p的内容不能修改;常量指针int const *p = &a;则表示指针p所指向的内容不能修改。

    此文仅为鄙人学习笔记之用,朋友你来了,如有不明白或者建议又或者想给我指点一二,请私信我。liuw_flexi@163.com/QQ群:582039935. 我的gitHub: (学习代码都在gitHub) https://github.com/nwgdegitHub/
  • 相关阅读:
    ios8消息快捷处理——暂无输入框
    animateWithDuration 动画的速度选择
    对网页进行修改js代码
    如何对网页进行长截图
    centos快速配置yum源
    No module named 'Crypto.PublicKey' 完美解决办法
    Virtualenv 环境配置
    Python逻辑运算符的本质
    Django 使用Contenttype组件创建多关联数据库表
    Django Rest Framework url注册器组件 | 响应器组件 | 分页器组件
  • 原文地址:https://www.cnblogs.com/liuw-flexi/p/13426429.html
Copyright © 2011-2022 走看看