[C++] 纯文本查看 复制代码 int main()
{
const int c = 10;
const int &re = c;
//re = 30; //err,直接修改肯定不行
const int *p = &re; //这里的&re表示将指针指向变量re的地址,跟上面的引用变量不同。
cout<<"re="<<re<<endl;//看看此时re是什么。
cout<<"*p="<<*p<<endl;//*p
*((int*)p) = 30; //因此,p指向的数据以及变量re的值,是同一回事,前面是10,后面重新赋值后变为30。
cout << "*p = " << *p << endl;
cout << "re = " << re << endl; //但常量引用re变成30了,在这里你会理解出错,是因为忽视了&有两个作用:引用和取地址。
cout << "c = " << c << endl; //常量c没变还是10
return 0;
}
[C++] 纯文本查看 复制代码 int main()
{
const int c = 10;
const int &re = c;
const int *q=new int;
*((int*)q) = re; //这个应该是你想表达的意思,q指向的值和re值是同一个东西,注意和之前的区别
cout << "*q = " << *q << endl;
cout << "re = " << re << endl;
cout << "c = " << c << endl;
return 0;
} |