【发布时间】:2009-02-27 11:00:51
【问题描述】:
void main()
{
const int * a;
*a = 5;
}
gcc 错误:分配只读位置。
那么,如何在不使用其他变量的情况下分配给 *a? 像上面这样的声明有什么用?
【问题讨论】:
-
为什么会有“不使用其他变量”的限制?
-
因为不然太简单了:再创建一个int *b,赋值b = a,然后*b = 5会修改*a。
-
当然很简单。但这是第二个问题的答案:“像上面这样的声明有什么用?”。哦,您的“b = a”并不完全正确:它将 const 转换为非 const。你宁愿 a = b。