我想知道以下是否是未定义的行为
// Case 1:
int *p = 0;
int const *q = *const_cast<int const* const*>(&p);
// Case 2: (I think this is the same)
int *p = 0;
int const *const *pp = &p;
int const *q = *pp;
这是通过将 aint*
视为a 来读取的未定义行为int const*
吗?我认为这是未定义的行为,但我之前认为只添加const
一般是安全的,所以我不确定。