• 指针常量、常量指针和指向常量的常量指针


    int *const p:常量指针,其本质是一个常量(用指针修饰),这个常量的内容是一个指针,不可以修改p指向的地址,但是可以修改*p的值。定义的时候要赋初值。(数组名也是一个指针常量)

    int const *p(const int *p):指针常量,其本质是一个指针(用const修饰)。说明它指向的对象是一个常量,这个对象不能被更改,可以修改p指向的地址,但是不可以修改*p的值。

    const int *const p:指向常量的常量指针,既不可以修改p指向的地址,也不可以修改*p的值。

    分辨指针常量和常量指针

    在int const *p和int *const p中从右向左读遇到p以后替换为"p is a",遇到"*"以后将其替换为"point to"。所以int const *p是p is a point to const int(p是指向常量int的指针(指针常量)),int * const p 中p is a const point to int (p是一个指向int的常量指针) 。

    const后面的内容为常量

    const int p;  // p 为常量,初始化后不可更改

    const int* p;  // *p 为常量,不能通过*p改变它指向的内容
    int const* p;  // *p 为常量,同上
    int* const p;  // p 为常量,初始化后不能再指向其它内容
     

    总结:指针常量地址只读,说明指针常量能读取不同的地址,但是不能修改其指向地址的值。

              常量指针变量只读,也就是说指针变量只能读取一个地址,但是可以改变该地址的值。

  • 相关阅读:
    java对象转json对象
    cas-client登录后报INVALID_PROXY_CALLBACK
    tomcat启动一闪而过,调试tomcat
    获取url中的参数
    cas 退出后跳转指定页面
    cas增加验证码
    spring security+cas(cas proxy配置)
    oracle 导入导出指定表
    Marshaller根据对象生成xml文件
    webpack学习笔记
  • 原文地址:https://www.cnblogs.com/ligei/p/11423115.html
Copyright © 2020-2023  润新知