Этот код является практическим кодом для указателей. Но я не понимаю средства (int**)&p;
в этом коде.что это (int **) & p; означает в заявлении?
Просьба уточнить, как это оценивается.
Этот код является практическим кодом для указателей. Но я не понимаю средства (int**)&p;
в этом коде.что это (int **) & p; означает в заявлении?
Просьба уточнить, как это оценивается.
Это приведение типа, который интерпретирует значение &p
, которое имеет тип void **
, так как вместо имеющего тип int **
, который является тип переменной значение хранится в.
Бросок необходимо, поскольку void **
- это не то же самое, что и void *
, и он не автоматически конвертирует в/из других типов данных (данных). Это может сбить с толку.
Благодарим вас за понимание –
& p, являющийся типом void **, передается в тип int **, который присваивается q.
БОКОВОЕ ПРИМЕЧАНИЕ: «Любой указатель может быть присвоен указателем аннулированию Это может быть брошено обратно к первоначальному типу указателя Когда это произойдет, то значение будет равно исходным указатель.. стоимость."
Будьте осторожны при использовании указателей на пустоту. Если вы производите произвольный указатель на указатель на void, ничего не мешает вам от отбрасывать его на другой тип указателя.
Это неверно. 'p' не« отбрасывается », значение, которое выполняется, -' & p'. – unwind
@unwind - Извините, моя ошибка, это был «промах пальца», на самом деле приученный к типу отброшенного назад, следовательно, неправильно напечатал его. Спасибо за напоминание, я улучшил его. –
Не просто лить указатель на 'p' (поэтому делает его' void ** ') на' int'? – Arc676