Операция присваивания: =

Операция присваивания: =

     В языке Си знак равенства не означает "равно". Он означает операцию присваивания некоторого значения. С помощью оператора

bmw = 2002,

переменной с именем bmw присваивается значение 2002, т.е. элемент слева от знака = - это имя переменной, а элемент справа - ее значение. Мы называем символ = "операцией присваивания". Еще раз хотим обратить ваше внимание на то, что смысл указанной строки не выражается словами "bmw равно 2002". Вместо этого нужно говорить так "присвоить переменной bmw значение 2002". В этой операции действие выполняется справа налево.

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

i =i + 1;

     С математической точки зрения это бессмыслица. Если вы прибавляете единицу к конечному числу, результат не может быть равен исходному числу. Но как оператор присваивания данная строка имеет вполне определенный смысл, который можно выразить, например, такой длинной фразой "Взять значение переменной с именем i, к нему прибавить 1, а затем присвоить новое значение переменной с именем i".

i = i + 1,

РИС. 5.1.

Оператор вида

2002 = bmw,

на языке Си не имеет смысла, поскольку 2002 - число. Вы не можете присвоить константе какое-то значение; ее значением является она сама. Поэтому, сидя за клавиатурой, помните, что элемент, стоящий слева от знака =, всегда должен быть именем переменной.

     Тем из вас, кто предпочитает знать правильные названия понятий, скажем, что вместо использованного ранее термина "элемент" обычно употребляют слово "операнд". Операнды - это то, над чем выполняются операции. Например, вы можете описать процесс "поедания" гамбургера как применение операции "поедание" к oпeранду "гамбургер". 

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

/* таблица результатов турнира по гольфу */

main( ) {

int Jane, tarzan, cheeta, cheeta = tarzan = jane = 68;

printf("cheeta tarzan jane ");

printf("Cчетпервойпартии%4d %8d  %8d ", cheeta, tarzan, jane);

}

     В то время как многие языки запрещают применять такое троиное присваивание, присутствующее в данной программе, для Си это обычная практика. Присваивания выполняются справа налево сначала переменная jane получает значение 68, затем переменная tarzan и наконец переменная cheeta. Результат выглядит так:

cheeta tarzan  jane

Счет первой партии           68        68        68

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

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

7.14 Операции Присваивания

Из книги C++ автора Хилл Мюррей

7.14 Операции Присваивания Есть много операций присваивания, все группируют слева направо. Все в качестве левого операнда требуют lvalue, и тип выражения присваивания тот же, что и у его левого операнда. Это lvalue не может ссылаться на константу (имя массива, имя функции или const).


Присваивания

Из книги Давайте создадим компилятор! автора Креншоу Джек


Присваивания

Из книги Справочное руководство по C++ автора Страустрап Бьярн


R.5.17 Операции присваивания

Из книги Delphi. Учимся на примерах автора Парижский Сергей Михайлович

R.5.17 Операции присваивания Существует несколько операций присваивания, все они выполняются справа налево. Для всех них требуется, чтобы левым операндом был изменяемый адрес. Тип выражения присваивания совпадает с типом левого операнда. Результат операции присваивание -


R.13.4.3 Присваивания

Из книги Microsoft Visual C++ и MFC. Программирование для Windows 95 и Windows NT автора Фролов Александр Вячеславович

R.13.4.3 Присваивания Функция присваивания operator=() должна быть нестатической функцией-членом. Она не наследуется (§R.12.8). Более того, если пользователь не определил для класса X функцию operator=, то используется стандартная функция operator=, которая определяется как присваивание по


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

Из книги Основы объектно-ориентированного программирования автора Мейер Бертран

Оператор присваивания Слева от оператора присваивания := указывается переменная или свойство объекта, а справа — некоторое значение или выражение. Тип значения или результат выражения должен соответствовать типу переменной или


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

Из книги Windows Script Host для Windows 2000/XP автора Попов Андрей Владимирович

Оператор присваивания Для класса CObject описан оператор присваивания. Он описан с ключевым словом private и не имеет реализации:private:void operator=(const CObject& src);Таким образом для классов, наследованных от CObject запрещается выполнение операции копирования по умолчанию. Если такая


Попытка присваивания

Из книги HTML 5, CSS 3 и Web 2.0. Разработка современных Web-сайтов автора Дронов Владимир

Попытка присваивания Наша следующая техника адресуется к тем областям Объектной страны, в которых из страха тиранического поведения мы не можем позволить править простым правилам типизации, не встречая никакого


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

Из книги VBA для чайников автора Каммингс Стив

Операторы присваивания  В JScript, как и в языке С, для изменения содержимого переменных можно комбинировать оператор присваивания "=" с другими операторами (табл. П1.6).Таблица П1.6. Комбинации оператора присваивания и других операторов Оператор Описание = Простое


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

Из книги Язык программирования Си для персонального компьютера автора Бочков C. О.

Операторы присваивания Оператор присваивания = нам уже знаком. Его еще называют оператором простого присваивания, поскольку он просто присваивает переменной новое значение:a = 2;b = c = 3;Второе выражение в приведенном примере выполняет присвоение значения 3 сразу двум


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

Из книги Язык Си - руководство для начинающих автора Прата Стивен

Операторы присваивания Операторы присваивания приписывают переменным или свойствам объектов конкретные значения. Такие операторы всегда состоят из трех частей: имени переменной, или свойства, знака равенства и выражения, задающего нужное значение.Термин выражение я


Операции присваивания

Из книги C++ для начинающих автора Липпман Стенли

Операции присваивания В языке Си имеются следующие операции присваивания: Операция Действие ++ Унарный инкремент -- Унарный декремент = Простое присваивание *= Умножение с присваиванием /= Деление с присваиванием %= Остаток от деления с присваиванием += Сложение с


II. Операции присваивания

Из книги Конец холивара. Pascal vs C автора Кривцов М. А.

II. Операции присваивания =     Присваивает значение, указанное справа, переменной, стоящей слеваКаждая из приводимых ниже операции изменяет переменную, стоящую слева, на величину, находящуюся справа. Мы используем следующие обозначения: П для правой части и Л для левой. +


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

Из книги автора

Оператор присваивания Оператор присваивания имеет вид: переменная := выражение В качестве переменной может быть простая переменная, разыменованный указатель, переменная с индексами или компонент переменной типа запись. Символ := называется значком присваивания.