инкрементные указатели c - PullRequest
3 голосов
/ 15 августа 2010

Я использую указатели c, в которых, если я увеличиваю как * p ++, он увеличивает p, но возвращает только значение, на которое указывал p до того, как он был увеличен.как я могу увеличить значение, указанное р.

Ответы [ 2 ]

6 голосов
/ 15 августа 2010

сделать это: (* p) ++

Используя круглые скобки, вы указали, что хотите увеличить значение, на которое указывает.

4 голосов
/ 15 августа 2010

постфикс ++ имеет более высокий приоритет, чем *, компилятор читает *p++ как *(p++). Поскольку вы хотите увеличить значение *p, вам нужны фигурные скобки: (*p)++ вернет значение *p, а затем увеличит значение p на единицу. ++(*p) увеличит значение *p и вернет это значение.

Возможно, вы опустите скобки для последнего случая и напишите ++*p, но я бы посоветовал этого не делать, потому что ++(*p) является двойственным к (*p)++, но для ++*p это не *p++.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...