Ответ 1
++ имеет равный приоритет с *, а ассоциативность - справа налево. См. здесь. Это сделало еще более сложным, потому что хотя ++ будет связан с указателем, приращение применяется после оценки оператора.
Случае вещей:
- Пошаговый прирост, помните значение адреса указателя после возрастания в качестве временного
- Указание неинкрементного указателя на указатель
- Применить указательный адрес указателя для подсчета, подсчет теперь указывает на следующий возможный адрес памяти для объекта его типа.
Вы получаете предупреждение, потому что на шаге 2 вы никогда не используете разыменованное значение. Как и @Sidarth, вам понадобится скобка, чтобы заставить порядок оценки:
(*ptr)++