const 一般类型:
其中i不能重新被赋值。
const 指针:
int * p1; 这个指针代表,指针指向的内容可以改变,且指针本身可以改变指向。
int const* p2; / const int* p2; 这个指针代表,指针指向的内容不可更改,但指针本身可以改变指向。
int * const p3; 这个指针代表,指针指向的内容可以改变,但是指针本身不能改变指向。
const int * const p4; 这个指针表示,指针指向的内容不可以改变,且指针本身不可以改变指向。
其中p1并不能被p2与p4赋值。提示错误(不能将const int*类型的值分配到int*类型的实体),但能够被p3进行赋值,且能够改变指向的内容。
其中p2能被p1赋值,但通过p2并不能改变指向的内容,能够继续通过p1进行改变指向的内容。p2也能被p3,p4赋值。
其中p3和p4都不能改变指向,自然不能重新被赋值。
例子:(https://blog.csdn.net/baidu_38410526/article/details/102679685)节选
const 引用
const引用可读不可改,与绑定对象是否为const无关,
非const引用可读可改,只可与非const对象绑定。
临时对象
匿名对象可以理解为临时对象。
临时对象是有常属性的,只能作为右值。不能把临时对象作为实参传给非const引用。可以传给const引用。 (关于这一点,辩证参考https://blog.csdn.net/qq_32693119/article/details/79716462)
可以用普通对象接收临时对象,因为拷贝构造函数中就是进行常引用。
自定义类中,临时对象能够调用类的非const方法。
标签:p2,const,指向,int,对象,引用,指针 From: https://www.cnblogs.com/ylww/p/17022427.html