练习2.15
(a) int ival =1.01; //合法,但是会丢失小数点后面的值
(b)int &rval1 = 1.01; //错误 ,引用只能绑定在对象上,而不能与字面值或某个表达式的计算结果绑定在一起
(c)int &rval2 = ival; //正确
(d)int &rval3; //错误,引用必须初始化
练习2.16
(a) r2 = 3.14159 ;//合法,将3.14159赋值给d
(b)r2=r1; //合法,等价于d=i
(c)i = r2; //合法,等价于i = d
(d)r1=d; //合法等价于i=d
练习2.17
最终输出结果是10 10 , 因为在最后ri=10 改变了i的值,使i=10;
测试程序如下:
#include <iostream>
int main(){
int i, &ri = i;
i = 5; ri = 10;
std::cout << i << " " << ri << std::endl;
return 0;
}