Есть несколко способов использования оператора "++" и "--" : 1 После имени переменной в результате чего к переменной прибавляется 1 т.е выходит i=(i+1)+(i+1). 2 Перед именем переменной в данном случае в выражении вычесляются все действия над переменной т.е. оба "++i" после чего подставляются на ето место вычесленная переменная и производются вычесления n.t i=(i+1+1)+(i+1+1). Вот весь секрт
2-ю строчку можно разбить на 3 действия: ++i ++i +
Теперь разберемся с приорететом ++i имеет приоритет функции, значит сперва выполнятся оба ++i по порядку, потом +. теперь разберемся с памятью: первоначально у нас в памяти 5 затем первый ++i, получается 6 потом второй ++i, получается 7(шестерка затирается) и наконецто выполняется +, он складывает результаты предыдуших действий, а по тем адресам у нас семерки. В итоге получаем 14.
А вообще это зависит от компилятора, разные компиляторы по разному обрабатывают этот код! некоторые 13 выдают, и это тоже будет правильно. Вот с таким гемором можно встретиться блин
тут надо разобратся в порядке выполнения.Сначало выполняется условие во 2-х скобках т.е. i приравнивается -1.Потом выполняется вторая скобка,так как i=-1 выражениe i==(i=-1) будет истинно и выдаст 1 а ета 1-ца задается i в етом же выражении i=i==(i=-1). Теперь i унас равно 1-му. Далее выполняется само выражение в выраж ++(i=i==...) к i прибаляется один т.е. i теперь у нас равно 2. Даллее в выраж i++ к i прибавляется 1 и в данном случае i уже равно 3. Ну и вконце складывается 2+3 получ 5 и задаётся i.Вот и всё
Все даты в формате GMT
5 час. Хитов сегодня: 0
Права: смайлы да, картинки да, шрифты нет, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет