在学习const_cast转换时,有疑问如下:
#include "stdafx.h"
#include <iostream>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
int a = 5;
const int *p = &a;
int* p2 = const_cast<int*>(p);
*p2 = 6;
cout<<a<<endl;//6
const int b = 10;
int& rb = const_cast<int&>(b);//引用转换
rb = 100;
cout<<rb<<endl; //100
cout<<b<<endl; //10
return 0;
}
第一段中,输出6 ,没什么疑问,问题在于,第二段中rb是b的引用,为什么b的值没有发生变化(不应该变为100吗?)。在思考后没有想到原因,请不吝赐教。