const有更好的兼容性
const int& a = 10;
int& b = 9;
在const int& a = 10
中10
会被先赋予一个临时变量,而a
会引用临时变量
int b = 9
在汇编的实现相当于mov exs 9
,数字9
存在于指令中,因此在 int& b = 9
中数字9
在内存中并不占用空间,所以无法引用
const
在底层实现上任然是用指针实现
int a = 6;
int& b = a;
使用GDB调试打印 p &a
的值与p b
的值是一样的,说明b
当中存的是a
变量的地址