int a = 1;
int &b = a;//正确
int &b = 2;//错误
const int &a = 2;//正确
int *p = new int;
int &a = *p;//正确
int &a=p;//错误
int a = 2;
const int& b = a;//正确
总结:
引用要满足两个条件
1.引用的数据类型必须相同。
2.引用赋值时不可以将不能改变的量赋给可以改变的量。
int a = 1;
int &b = a;//正确
满足条件1,2;
int &b = 2;//错误
不满足条件2,因为常量2是不可改变的常量,而引用的b是可以改变的,所以错误;
const int &a = 2;//正确
因为2和a在这里均为不可改变的常量,所以没问题
int *p = new int;
int &a = *p;//正确,因为*p为int格式,且可以改变
int &a=p;//错误,因为p为int*格式,格式不符,不满足条件1
int a = 2;
const int& b = a;//正确
可以将可以改变的量赋值给不可改变的量,反过来不可以