1: const int *p = &temp;
这里的const修饰的是int, 就是说p这个指针指向的那个对象是一个常量,不可变。
2: int* const p = &temp;
这里的const修饰的是 int*,表明int*类型的对象是一个常量,就是说指针p是常量,他指向的位置不可变,但是他指向位置里面的值是可变的(如果temp不可能是一个常量,否则会报错)
3: const int &p = temp;
const修饰int, 表明p引用的值是一个常量int
4: int& const p = temp;
const 修饰 int&, 表明对于int的引用是个常量,该引用不能引用别的对象,已经和该对象绑定,但是可以修改该对象的值。