• 常量指针、指针常量


    * (指针)和 const(常量) 谁在前先读谁 ;*象征着地址,const象征着内容; 谁在前面谁就不允许改变。
        int a =3; 
        int b = 1; 
        int c = 2; 
        int const *p1 = &b;                //const 在前,定义为常量指针 ;int 在前指向的int类型值内容不能变
        int *const p2 = &c;                //*在前,定义为指针常量  ;int* 在前指针不能变,永远指向c的地址

    常量指针p1:指向的地址可以变,但内容不可以重新赋值,内容的改变只能通过修改地址指向后变换。   

        p1 = &a是正确的,但 *p1 = a是错误的。


    指针常量p2:指向的地址不可以重新赋值,但内容可以改变,必须初始化,地址跟随一生。
        p2= &a是错误的,而*p2 = a 是正确的。


    int a=20;
    const int* pa=&a;       //常量指针,a的值不能再更改;相当于上面的 int const *pa = &a;
    常量指针所指向的内容是不可修改的
    int * const pb=&a;      //指针常量,pb 不能更改,再去指向其它地址
    因为指针常量是一个常量,在声明的时候一定要给它赋初始值
    虽然指针常量的值不能变,可是它指向的对象是可变的

  • 相关阅读:
    车联网场景中的 MQTT 协议
    MQTT 遗嘱消息(Will Message)的使用
    为什么烧写SD卡的 image 总是报错?
    【友晶科技Terasic】无法下载Quartus软件,每次登录后又跳回到下载页面
    three.js在调整相机角度时导致的图形显示
    JOIG 2022 题解
    JOI 2021/2022 二次予選 题解
    Codeforces Round #769 (Div. 2) 题解
    WC2022 游记
    树莓派安装软件包时出现的很多依赖问题的解决
  • 原文地址:https://www.cnblogs.com/meihao1203/p/6753820.html
Copyright © 2020-2023  润新知