Когда и как разрешено преобразование в указатель на символ?

Мы можем посмотреть на представление объекта типаT путем преобразованияT* который указывает на этот объект вchar*, По крайней мере, на практике:

int x = 511;
unsigned char* cp = (unsigned char*)&x;
std::cout << std::hex << std::setfill('0');
for (int i = 0; i < sizeof(int); i++) {
  std::cout << std::setw(2) << (int)cp[i] << ' ';
}

Это выводит представление511 в моей системе:ff 01 00 00.

Здесь (несомненно) определено поведение, определяемое реализацией. Какой из приведений позволяет мне преобразоватьint* чтобыunsigned char* и какие преобразования это влечет за собой? Я вызываю неопределенное поведение, как только произнесу? Могу ли я бросить любойT* типа как это? На что я могу положиться при этом?

Ответы на вопрос(7)

Ваш ответ на вопрос