В чем разница между префиксными и постфиксными операторами? - PullRequest
29 голосов
/ 11 августа 2011

Следующий код печатает значение 9. Почему?Здесь return(i++) вернет значение 11, а из-за --i само значение должно быть 10, кто-нибудь может объяснить, как это работает?

Ответы [ 12 ]

2 голосов
/ 11 августа 2011

Это связано с тем, как работает оператор постинкрементной обработки. Возвращает значение i, а затем увеличивает его.

1 голос
/ 11 августа 2011

fun (10) возвращает 10. Если вы хотите, чтобы он возвращал 11, вам нужно использовать ++ i, а не i ++.

int fun(int i)
{
    return ++i;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...