Если у вас есть, например, эти два объявления
char ch = 'A';
char *cp = &ch;
Тогда это выражение ++cp
увеличивает значение, хранящееся в переменной cp
. Значение - это адрес переменной ch
Таким образом, после приращения значение, хранящееся в переменной cp, будет указывать на память, которая находится после памяти, занятой переменной ch.
Унарный оператор ++ может изменить значение выражения lvalue. Например, вы не можете писать
char ch = 'A';
`++&ch;`
, потому что выражение &ch
дает значение адреса.
Это то же самое, что писать
++3;
вместо
int x = 3;
++x;