严格来说,“const 引用”的意思是“指向 const 对象的引用”。类似地,程序员使用术语“非 const 引用”表示指向非 const 类型的引用。
const 引用可以初始化为不同类型的对象或者初始化为右值
eg:
int i = 10;
const &pi1 = 11;
const &pi2 = i + pi1;
cosnt &pi3 = 11 + i + pi1;
同样的初始化对于非 const 引用却是不合法的,而且会导致编译时错误。
why:
对于不同类型的 const 引用:
double dpi = 3.14;
int &pi = dpi; //error
const int &pi = dpi; //ok
编译器会把这些代码转换成如以下形式的编码:
int tmp = dpi;
const int &pi = tmp;
所以当修改了dpi 的值以后,pi 的值仍为初始值:
makefile:
根据自己需求修改 SRC OBJ
输出:
3.14 3
4.30 3