Руководство полного чайника по программированию на языке Си

       

ПРОГРАММА


Программа состоит из ОПЕРАТОРОВ, то есть действий. Операторы выполняются последовательно в том порядке, в котором они записаны.

/* ОБЪЯВЛЯЕМ ДВЕ ПЕРЕМЕННЫЕ */ int x, y; /* 0 */

/* Это еще не операторы, хотя при этом создаются 2 ящика для целых чисел */

/* А ТЕПЕРЬ - ОПЕРАТОРЫ. */ /* Мы начнем с простых операторов присваивания и арифметики */

x = 3; /* 1 */ y = 4; /* 2 */ x = x + y; /* 3 */ y = y - 1; /* 4 */ x = y; /* 5 */

Значения переменных (то, что лежит в ящиках) меняются таким образом:

x y /* 0 */ мусор мусор

/* после 1 */ 3 мусор /* после 2 */ 3 4 /* после 3 */ 7 4 /* после 4 */ 7 3 /* после 5 */ 3 3

Как вы видите, переменные, которые не участвуют в левой части оператора присваивания, этим оператором НЕ МЕНЯЮТСЯ.

Последняя операция x = y; НЕ делает имена x и y синонимами. Такой вещи, как "перевешивание табличек с именами с ящика на ящик" не происходит. Вместо этого, два ящика с именами x и y содержат одинаковые значения, то есть две копии одного и того же числа.

----- ----- / x / / y / --------------- --------------- | 3 *<--|--------<----|-- 3 | --------------- 1) --------------- 2), 3) 4)

1) Из ящика y берется КОПИЯ числа 3 (безымянное значение). 2) Старое содержимое ящика x уничтожается. 3) Число 3 кладется в ящик x. 4) В исходном ящике y попрежнему осталось 3.

Значение целой переменной можно вывести на экран оператором печати:

printf("%d\n", x);

Пока будем рассматривать его как "магический".

Над целыми числами можно производить такие арифметические операции:

x + y сложение x - y вычитание x * y умножение x / y деление нацело (то есть с остатком; результат - целое) x % y вычислить остаток от деления нацело

5 / 2 даст 2 5 % 2 даст 1

В операторах присваивания используются такие сокращения:

ДЛИННАЯ ЗАПИСЬ СМЫСЛ СОКРАЩАЕТСЯ ДО x = x + 1; "увеличить на 1" x++; (или ++x; ) x = x - 1; "уменьшить на 1" x--; (или --x; ) x = x + y; "прибавить y" x += y; x = x * y; "умножить на y" x *= y; x = x / y; "поделить на y" x /= y;

В том числе x++; можно записать как x += 1;



Содержание раздела