![]() |
#2
rjsp2017-03-08 10:38
|
还有int &r4 = r2 * 2;//非常量引用的初始值必须是左值 这里我明白是为了不让通过非常量修改常量的值
可是这里这里 r1 = r2;//非常量引用绑定到常量上 , 然后我通过r1修改了常量r2的值。

#include <iostream>
#include <stdio.h>
using namespace std ;
int main( )
{
int a1 ; const int a2=1 ;
a1 = a2 ;//常量赋值给非常量
//a2 = a1;//常量不可以修改
int &r1 = a1;
const int &r2 = a1;//常量引用可以绑定到非常量上
r1 = r2;//非常量引用绑定到常量上
r1 = 88;
cout << r2;
// int &r4 = r2 * 2;//非常量引用的初始值必须是左值
return 0;
}
#include <stdio.h>
using namespace std ;
int main( )
{
int a1 ; const int a2=1 ;
a1 = a2 ;//常量赋值给非常量
//a2 = a1;//常量不可以修改
int &r1 = a1;
const int &r2 = a1;//常量引用可以绑定到非常量上
r1 = r2;//非常量引用绑定到常量上
r1 = 88;
cout << r2;
// int &r4 = r2 * 2;//非常量引用的初始值必须是左值
return 0;
}