关于C++指针、引用和const关键字的各种关系

const int x1=0;//常量写法1
    int const x2=0;//常量写法2
    int x3=0;
    int * const p1=&x3;//指针常量(指针类型的常量,对象是指针类型的,指针本身是常量,顶层const)
    const int* p2=&x1;//指向常量的指针(指针本身是变量,指向的数据是常量,底层const)
    const int* const p4=&x1;//指向常量的指针常量(顶层+底层const)
    const new_type p5=&x3;//指向变量的指针常量(相当于const (int*) p4=&x3;首先p4是常量,指向一个int变量,顶层const)

    int& r1=x3;
    const int & r2=x1;//常量引用写法1
    int const & r3=x2;//常量引用写法2
    
    //引用不是对象,初始化后就不能改变,故引用只区别指向常量or不指向常量
    float pi=3.14;
    //int &x=pi;非法,因为这样不同类型的引用绑定实际上是声明一个临时量int tmp=pi;int &x=tmp;
    //绑定一个临时量的引用无意义,因为不能改变原来的pi值,故c++直接报错

 

posted @ 2020-03-25 00:07  NeoZy  阅读(168)  评论(0编辑  收藏  举报