今天我接受了一次采访,其中一个问题对我来说非常棘手.采访者说"如何不断改变其价值?"
我回答"使用指针",我向他展示了一个例子:
int main( void )
{
const int a = 3;
int *ptr;
ptr = (int*)( &a );
printf( "A=%d\n", a );
*ptr = 5;
printf( "A=%d\n", a );
return 0;
}
Run Code Online (Sandbox Code Playgroud)
但他说这很好.但告诉我哪个属性使得常数不变?他还说,有一个属性我们可以改变,并使其不断变化.
有没有这样的财产?它是如何工作的?
Mik*_*our 15
如果他说这很好,那么他就错了:尝试修改常量对象会产生不确定的行为.在实践中,可能会发生以下三种情况之一:
该语言没有定义const
对象的任何运行时属性; 只是编译时检查,你不会意外修改它们.