鉴于此代码(来自我的上一篇文章):
const int j = 5; // constant object
const int *p = &j; // `p` is a const access path to `j`
int *q = const_cast<int *>(p); // `q` is a non-const access path to `j`
*q = 10;
cout << *q << endl;
输出是:10
应该是这样吗?我认为这段代码应该导致未定义的行为,因为j
它是一个 const 。我错了吗 ?
谢谢