Если подпрограмма хочет вывести указатель, например, в том месте, где при синтаксическом анализе вашей строки она остановилась, вы передаете ей указатель на этот указатель, чтобы он мог записать ваш указатель с этим выходом.
Приведение делает проверка типов тихая, но вы можете просить о глупостях. По определению, указатель void может быть приведен или назначен для указания на что угодно, включая указатель, указатель на указатель, указатель на указатель на указатель и т. Д. c. Указатель - это просто длинное число без знака с большим отношением, типом, на который он указывает, и приведение его меняет.