Однокурсник один спросил меня что будет, если написать следующий код:
int i = 0;
int rez = i i ;
Console.WriteLine(rez);
Итак, внимание, вопрос: Почему не 1????? Ведь по сути мы к переменной rez прибавляем сначала i, а это 1, а потом ещё i (а это 0, потому что тут постинкремент!!!)! Так в чём подвох?
Потому что ты работаешь с одной и той же переменной. После первого инкремента i у тебя переменная i стала равна 1. Затем, ты правду говоришь, постинкремент роли не сыграет, однако твоя переменная УЖЕ равна 1, так что ты во второй раз по сути прибавляешь 1. Результат - 2.
Вот если ты напишешь так:
public class Program
{
public static void Main()
{
int i = 0, j = 0;
int rez = i j ;
Console.WriteLine(rez);
Console.ReadKey();
}
}
То получится то о чём ты и говорил. В таком случае вторая переменная j так и останется 0.