В этом фрагменте кода, какие значения имеют a и i соответственно и почему?
a
i
int i = 1; int a = i++;
Имеет ли a == 1 или a == 2?
a == 1
a == 2
a==1.И тогда, i==2
a==1
i==2
Было бы a==2, если бы вы сделали a=++i
a==2
a=++i
А будет один. Это называется постинкрементом. Переменная i увеличивается только после использования. Противоположность называется предварительным приращением.
int i = 1;
i теперь имеет значение 1.
int a = i++;
a имеет значение i++, то есть 1 (i++ возвращает 1, затемэто увеличивает значение i на 1).i теперь увеличивается с 1 и становится 2.
i++
1
2
На данный момент, a == 1, i == 2.
i == 2
a==1, i++ возвращает значение i, а затем увеличивает его. К вашему сведению, если бы у вас было ++i, то было бы верно обратное, i будет увеличено, а затем будет возвращено значение.
++i