关于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++直接报错
进击的小🐴农