zoukankan      html  css  js  c++  java
  • 常量指针和指针常量

    常量指针:

    const int *p = &a; 或者 int const *p = &a;

    *p是常量,不能将*p作为左值进行操作。但指针p还是一个变量,它的内容存放常量的地址,所以先声明常量指针再初始化是允许的,指针也是允许修改的

    int a = 0,b = 1;
    const int *p;    //  声明常量指针p
    p=&a;            //  p指向a
    p=&b;            //  修改指针的值p让其指向b,允许
    *p=2;            //  修改指针所指向的变量的值,不允许

    指针常量:

    int * const p = &a;

    指针本身是一个常量,指针指向一个变量

    即p是常量,不能作为左值进行操作,但允许修改其指向的内容,即*p是可修改的。指针常量必须在声明的同时对其初始化,不允许先声明一个指针常量随后再对其赋值,这和声明一般的常量是一样的。

    int a = 0,b = 1;
    int *const p1 = &a; 
    int *const p2;           //  不允许,必须常量定义时必须对其初始化
    p2 = &b;                 //  不允许,p2是指向a的常量, 不允许作为左值
    *p1 = 2;                 //  允许,  指针指向的是一个变量, 可以修改指针*p1的值

    快速记忆:

    把一个声明从右向左读。 

    char  * const cp; ( * 读成 pointer to ) 
    cp is a const pointer to char 

    const char * p; 
    p is a pointer to const char; 

  • 相关阅读:
    Java-16 常用包装类
    Java-15 String类
    flask实现web端微信登录
    Flask-excel导出数据
    Java-14 单例模式
    Java-13 接口
    Java-12 抽象类
    结对项目:一个自动生成小学四则运算题目的命令行程序(c++)
    软工作业:第一次个人项目作业
    操作系统笔记一:操作系统引论
  • 原文地址:https://www.cnblogs.com/zywu/p/5903563.html
Copyright © 2011-2022 走看看