Как ведёт себя этот код?
Input:
int main (void){
int x = 10, z = 20;
printf("%d %d %d\n", x++, x++, x++);
printf("%d %d %d", ++z, ++z, ++z);
}
Output:
12 11 10
23 23 23
Ответы (1 шт):
Автор решения: Константин Николаевич Бояр II
→ Ссылка
++z увеличивает значение z, а затем возвращает z
x++ возвращает значение x, а затем увеличивает, именно по этой причине код ведет себя подобным образом
Как именно ведет себя код:
Создается функция, задаются переменные, идет вывод х и z, но x у вас изначально вернул значение, а потом увеличил, и так 3 раза, а z увеличил на 3, а потом вернул все 3 числа.
++z: загрузить z из памяти, увеличить, использовать, сохранить обратно в память.
x++: загрузка x из памяти, использование, увеличение, сохранение в памяти.
Очень влияет предоставили ли Вы параметр после извлечения, после использования или после хранения