У меня вопрос о приведении типа ссылки на переменную типа double. Что именно происходит, когда & d преобразуется в беззнаковый char *? Как типизируется адрес ...

0
The Programming M16A4 30 Дек 2020 в 01:07

1 ответ

Лучший ответ

&d представляет собой указатель на место, в котором хранится значение типа double. Указатель - это просто адрес памяти (вероятно, 64-битное значение), который определяет место в памяти, независимо от типа данных, на которые указывает.

Это делает возможным преобразование double * в unsigned char *, поскольку представление обоих является просто словом памяти. Затем запись массива разыменовывает этот указатель и добавляет в n раз размер символа (1 байт), а затем считывает следующие биты типа char-many.

Обозначение массива a[n] эквивалентно *(a+n). Это просто добавление смещения к указателю, на который указывает a.

1
maxcampman 29 Дек 2020 в 22:31