zoukankan      html  css  js  c++  java
  • 指针和const一些注意事项

    1、常量指针(底层const)

    指向常量的指针,指针所指向的对象的值无法被修改,若想存放常量对象的地址,只能使用指向常量的指针。

    2、指针常量(顶层const)

    指针本身是常量,指针本身的值不可修改。

    1 int i=02 int *const pi=&i;    //指针常量pi一直指向i
    3 const double dp=3.1415;
    4 const double *const dp1=&dp;//dp1是一个指向常量对象的指针常量

     注意:1)一般来说,顶层const可以表示任意对象是常量,而底层const一般与指针或者引用等复合数据类型的基本类型部分有关。

        2)指针也可以是顶层const,也可以是底层const,这个与其他类型有较大区别。

        3)用于声明引用的const都是底层引用。

        4)当执行对象的拷贝操作时,拷入和拷出的对象必须具有相同的底层const资格,或者两者的数据类型能够相互转换(针对的是具有顶层或者底层区别的指针或者引用)。

        5)引用只有底层const这种说法,即绑定的对象是常量,而顶层底层const只对指针来说。

    3、指针、常量和类型别名

    假设声明一个pstring,来作为char *的别名:

    1 typedef char* pstring;
    2 const pstring cstr=0;
    3 const pstring *ps;

    注意:1)不能将本来的char* 代到2、3行中变成:const char* cstr=0;  const char* *ps;  这样的意思是定义一个指向常量的指针常量,然而这样是错的。

        2)当类型别名与指针、常量一起使用时,要小心,应当将pstring看成一个整体,即一个指向char的指针,而const是用来修饰这个整体的,所以上面2、3行代码分别是:一个指向char的指针常量  一个指向char的指针常量的指针

  • 相关阅读:
    7个最好的免费杀毒软件下载
    VMware虚拟机扩容
    tomcat的JK和JK2
    面向对象——接口
    JPA入门样例(採用JPA的hibernate实现版本号)
    JAVA数组的定义及用法
    Styles and Themes
    OpenSSL再曝CCS注入漏洞-心伤未愈又成筛子
    纯文本抽出程序库DMC TEXT FILTER
    数据结构课程设计之通讯录管理系统
  • 原文地址:https://www.cnblogs.com/Dark-King/p/9360845.html
Copyright © 2011-2022 走看看