2015-10-23 6 views

ответ

2

Это приведение типа, который интерпретирует значение &p, которое имеет тип void **, так как вместо имеющего тип int **, который является тип переменной значение хранится в.

Бросок необходимо, поскольку void ** - это не то же самое, что и void *, и он не автоматически конвертирует в/из других типов данных (данных). Это может сбить с толку.

+0

Благодарим вас за понимание –

2

& p, являющийся типом void **, передается в тип int **, который присваивается q.

БОКОВОЕ ПРИМЕЧАНИЕ: «Любой указатель может быть присвоен указателем аннулированию Это может быть брошено обратно к первоначальному типу указателя Когда это произойдет, то значение будет равно исходным указатель.. стоимость."

Будьте осторожны при использовании указателей на пустоту. Если вы производите произвольный указатель на указатель на void, ничего не мешает вам от отбрасывать его на другой тип указателя.

+1

Это неверно. 'p' не« отбрасывается », значение, которое выполняется, -' & p'. – unwind

+0

@unwind - Извините, моя ошибка, это был «промах пальца», на самом деле приученный к типу отброшенного назад, следовательно, неправильно напечатал его. Спасибо за напоминание, я улучшил его. –

Смежные вопросы