Есть ли различие между ++i и i++ для цикла - C#
Формулировка задачи:
for(int i = 0; i < 5; i++)
Решение задачи: «Есть ли различие между ++i и i++ для цикла»
textual
Листинг программы
.method private hidebysig static void PreInc() cil managed { IL_0000: ldsfld int32 Test.Program::number //Кладём на стек значение переменной number (0) IL_0005: ldc.i4.1 //Кладём на стек единицу (0 1) IL_0006: add //Берём два значения со стека, складываем, кладём обратно (1) IL_0007: dup //Дублируем значение со стека (1 1) IL_0008: stsfld int32 Test.Program::number //Забираем значение со стека в number (number = 1) IL_000d: call void Test.Program::Check(int32) //Забираем со стека значение и вызываем функцию: Check(1) } // end of method Program::PreInc //Получаем выход: Passed: 1, Current: 1 ... .method private hidebysig static void PostInc() cil managed { IL_0000: ldsfld int32 Test.Program::number //Кладём на стек значение переменной number (1) IL_0005: dup //Дублируем значение со стека (1 1) IL_0006: ldc.i4.1 //Кладём на стек единицу (1 1 1) IL_0007: add //Берём два значения со стека, складываем, кладём обратно (1 2) IL_0008: stsfld int32 Test.Program::number //Забираем значение со стека в number (number = 2) IL_000d: call void Test.Program::Check(int32) //Забираем со стека значение и вызываем функцию: Check(1) } // end of method Program::PostInc //Получаем выход: Passed: 1, Current: 2
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д