Немного пробелов может помочь прояснить это для вас.
Когда вы пишете i=+1
, на самом деле происходит i = +1
. Это связано с тем, что в C. нет оператора = +. =
рассматривается как собственный оператор, а +
- унарный оператор, действующий на константу 1
. Таким образом, оценка этого оператора начинается с правой стороны оператора =
. +1
оценивается как 1
, а оператор =
затем присваивает это значение переменной i
.
+=
- это собственный оператор в C, который означает «добавить значение выражения в правой части этого оператора в переменную в левой части и присвоить его этой переменной, что-то вроде следующего:
i = 3;
i += 2;
будет иметь значение 5
, потому что оператор +=
будет вычислять правую часть оператора (в данном случае 2
, и добавит его в левую часть (в этом случае значение i равно 3 ) и присвоит его переменной слева. По сути, это становится i = (2 + 3)
. Поэтому переменная i
будет иметь окончательное значение 5
.
Если вы просто добавляете значение 1
к целочисленной переменной, вы можете использовать вместо этого оператор ++
. Добавление этого оператора после переменной (то есть i++
) приведет к выполнению текущей строки кода перед тем, как увеличит переменную на единицу. Префикс оператора перед переменной приведет к выполнению оператора после приращения переменной.
например:.
i = 5;
j = i++;
приведет к i = 6
и `j = 5 ', тогда как
i = 5;
j = ++i;
приведет к i = 6
и j = 6
.
Аналогично, оператор --
может использоваться для уменьшения (уменьшения) переменной на единицу, подобно тому, как ++
будет увеличивать (увеличивать) переменную на единицу. Одинаковые правила, касающиеся позиционирования оператора до или после переменной, применяются к обоим операторам.
Надеюсь, это немного прояснит ситуацию.