Так как похоже, что ОП изменилось print(s++)
на print(++s)
, что сильно отличается, вот объяснение этой новой версии.
В первом примере у вас есть:
print(s+1);
cout << *s;
s + 1 не изменяет s.Таким образом, если s равно 4, а вы print(s+1)
, впоследствии s все равно будет 4.
print(++s);
cout << *s;
В этом случае ++ s изменяет локальное значение s.Это увеличивает его на 1. Поэтому, если это было 4 до print(++s)
, это будет 5 после.
В обоих случаях значение, эквивалентное s + 1, будет передано вфункция print, заставляющая печатать следующий символ.
Таким образом, разница между двумя функциями заключается в том, что первая будет рекурсивно печатать символ # 0, затем 1, 2, 3, ..., а втораяфункция печатает 1, 2, 3, 4, ... (пропускает первый символ и затем печатает «\ 0»).
Пример:
Для версии s+1
, print("hello")
приведет к h
e
l
l
o
Для версии ++s
, print("hello")
приведет к e
l
l
o
\0