int get()
{
static i = 1;
return i++;
}
int main(int argc, char *argv[])
{
printf("%d %d %d\n", get(), get(), get());
return 0;
}
Выход: 3 2 1 (Приказ зависит от компилятора)Что касается пост прироста
Вопрос: Но почему это значение, прежде чем приращение возвращается статической переменной (области видимости файла). Что такое правило большого пальца для post/pre increment? Я никогда не ошибаюсь. Пожалуйста помоги.
Хорошо, позвольте мне быть более конкретным, все примеры, которые я читаю, равны a = i++; or a = ++i;
, это выражения для увеличения, а затем назначают или присваивают тогда приращение. Но что это за выражения, return i++; func(a++);
Я читал это так: «после того, как я ++ ничего не назначил, поэтому верните окончательное добавочное значение» (исправьте меня здесь)
заказ не определен .. но почему это значение возвращается 1? –
Вам нужно прочитать [точки последовательности] (http://en.wikipedia.org/wiki/Sequence_point). – devnull
@codeymonkey Читать http://stackoverflow.com/questions/17366847/what-is-the-difference-between-pre-increment-and-post-increment-in-the-cycle-fo –