Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






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






 

Для исключения путаницы в понятиях " операция" и " оператор", отметим, что оператор - это наименьшая исполняемая единица программы. Очень часто в литературе по Си вместо термина " оператор" используется его синоним " инструкция". Операция a = c становится оператором, если в конце поставить точку с запятой a = c;. В Си точка с запятой является заключающим символом оператора. Различают операторы присваивания, действие которых состоит в вычислении и сохранении результатов заданных выражений (например: a = sin(b)+c; j++;), операторы объявления, составные операторы, пустые операторы, операторы метки, цикла и т.д. Для обозначения конца оператора в языке Си используется точка с запятой. Что касается составного оператора (или блока), представляющего собой набор логически связанных операторов, помещенных между открывающей ({) и закрывающей (}) фигурными скобками (" операторными скобками"), то за ним точка с запятой не ставится. Отметим, что блок отличается от составного оператора наличием определений в теле блока.

В блок-схемах обычная математическая запись , означающая, что переменная принимает значение выражения , представляется в виде (читается " становится равным "). При выполнении этого оператора переменная теряет свое предыдущее значение и получает новое значение.

Каждое имя в программе (в том числе в блок-схеме) – это косвенное обозначение адреса поля памяти. Следовательно, при выполнении оператора в оперативной памяти будут использованы поля с именами

 

 
 

 

 


y a b x

Память

 
 


Выполнение оператора присваивания производится в четкой последовательности во времени:

1) из памяти в процессор читаются значения переменных (содержимое полей памяти с адресами );

2) в процессоре вычисляется значение выражения ;

3) результат вычислений записывается в память в поле с именем .

 

Использование операции присваивания позволяет записывать такие конструкции, которые в обычной математической интерпретации бессмысленны. Например, . Это означает, что к текущему значению переменной добавляется 1, после чего полученное значение присваивается той же переменной . Следовательно, значение переменной увеличивается на единицу.

 

Пример 1. Обменять значения переменных и .

Если мы перешлем содержимое поля в поле , т.е. выполним оператор , то прежнее значение переменной будет уничтожено. При выполнении оператора будет уничтожено текущее содержимое поля . Поэтому обмен содержимого двух полей памяти необходимо делать с помощью дополнительного буферного поля. Это может иметь следующий вид:

 

b
a
2

           
   
 
   
 

 

 


R
1 3

       
 
   
 

 

 


Числа 1, 2, 3 указывают последовательность пересылок содержимого полей памяти , и .

 

Представленную выше схему можно реализовать такими операторами:

; ; .

 

Подчеркнем еще раз смысл оператора присваивания. Если в правой части оператора записана переменная, например,

,

то это означает, что содержимое поля памяти с именем (адресом) пересылается в поле . Разумеется, такая пересылка осуществляется через процессор.

 

Если в правой части оператора присваивания стоит выражение, например,

,

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

Если в левой части оператора присваивания записаны имена двух переменных, например, , то переменной присваивается значение выражения , как показано выше. После этого в поле памяти записывается значение из поля памяти .

 

В Си оператор присваивания имеет такое же обозначение, как и на блок-схеме. Его синтаксическая диаграмма:

 

 
 

 


Выражение состоит из операндов, знаков операций и круглых скобок. Операндом может быть константа, переменная или функция. Выражение задает порядок вычисления значения, основанный на обычном правиле вычисления слева направо и старшинстве операций. В частном случае, в качестве выражения может выступать имя переменной.






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.