#include "stdafx.h"
#include <iostream>
using namespace std;
int main()
{
const int a = 1;
printf("&a = 0x%p\n",&a);
int* pa = const_cast<int *>(&a);
int & b = const_cast<int &>(a);
// 以上a和b的值不一样,但打印出的地址是相同的,这是如何做到的呢??
printf("&a = 0x%p,pa=0x%p\n",&a,pa);
printf("&b = 0x%p\n",&b);
printf("reinterpret_cast<int>(&a) = 0x%p\n",reinterpret_cast<int>(&a));
printf("reinterpret_cast<int>(&b) = 0x%p\n",reinterpret_cast<int>(&b));
cout<<a<<" "<<b<<endl; // 1 1
b=10;
//cout<<a<<" "<<b<<endl; // 1 10
//cout<<a<<" "<<b<<endl; // 1 10
int c = a;
printf("%d,%d,%d",a,b,c);
// 以上a和b的值不一样,但打印出的地址是相同的,这是如何做到的呢??
printf("&a = %p\n",&a);
printf("&b = %p\n",&b);
printf("reinterpret_cast<int>(&a) = 0x%p\n",reinterpret_cast<int>(&a));
printf("reinterpret_cast<int>(&b) = 0x%p\n",reinterpret_cast<int>(&b));
return 0;
}
试了试水,很深,正如楼主所说