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; 

  • 相关阅读:
    python多线程编程(6): 队列同步
    Python验证Url地址的正则表达式
    centos下redis安全配置相关
    redis
    mysql安装 配置
    centos7安装python3 环境变量配置 django安装 以及tab补全功能
    saltstack 与常用服务部署
    vim
    Linux系统基础优化及常用命令
    Shell 基本命令
  • 原文地址:https://www.cnblogs.com/zywu/p/5903563.html
Copyright © 2011-2022 走看看