Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Text_lektsy_Si-dlya_studentov.pdf
Скачиваний:
6
Добавлен:
08.05.2015
Размер:
1.22 Mб
Скачать

Глава 5 ОСНОВНЫЕ ОПЕРАТОРЫ

ВСЕ ЯВЛЯЕТСЯ ОПЕРАТОРОМ!

1)Принципиальная разница Си и других языков в том, что в Си все операторы равноправны. Скажем (для тех, кто имеет некоторый опыт в программировании на других языках), что вызов функции тоже является оператором.

2)Более того, каждый оператор (исключений нет!) возвращает некоторое значение

результат своей работы.

Ну, для оператора сложения все понятно: оператор a+b возвратит сумму чисел a и b. А что возвращает оператор присваивания (в Си он записывается как = )? Оказывается, значение выражения a = b равно a. Эта, на первый взгляд, бессмысленная возможность, во-первых, сильно упростила создание языка (нет необходимости разделять операторы на возвращающие значение и не возвращающие, да еще проверять на правильность.

Например, на Паскале (кто знает) необходимо специально проверять выражение на предмет выражений вроде a := (b := c), а во-вторых, позволила сильно сократить размер исходного текста программы.

5.1 Оператор присваивания

Образуется формальным добавлением ; (точки с запятой) к выражению с операцией присваивания.

Формат

<имя_переменной> <ОР>= <выражение>;

где ОР – одна из операций: , / % + – & ^ | << >>. Если рассматривать конструкцию ОР= как две операции, то вначале выполняется ОР, а затем =.

Пример: Х*=2;

Z+=4;

i/=X+4*Z;

Пример: x=–.127; i=i+1;

i++;

a[i+1]=x*y+2*sin((z+1)*(x–2));

x+=a+b/2; –> x=x+a+b/2;

Многократное присваивание.

Например: a = b = c = d = 0;

Как будет работать такой участок кода? Начнем сначала. Данное выражение присваивает переменной a результат выполнения оператора b = c = d = 0, который, в свою очередь, присваивает переменной b результат выполнения оператора c = d = 0, который...

То есть этот участок кода как бы развертывается в такой: d = 0;

c = d; b = c; a = b;

 

Итак, как мы видим, всем четырем переменным присвоено начальное значение

всего одним оператором.

Пример:

i=j=k=0; k=0; j=k; i=j;

i=1; j=3;

22

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]