- •ЗАМЕЧАНИЕ <...> в описании правил записи (формата) конструкций языка означают понятие языка, в программе не записываются.
- •Пример
- •Формат
- •Значение
- •Содержание
- •Формат
- •if ( <выражение> )
- •Форма представления одного данного
- •Ввод двумерного массива
- •Вопрос? А как же передать результаты работы в вызывающую процедуру, если реально можно передать только одно значение?
- •Вызывающая
- •Вызываемая
- •ВЫЧИСЛЕНИЕ КВАДРАТИЧНОЙ ФОРМЫ
Глава 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