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

 

Язык C++ имеет несколько особенностей выполнения операции присваивания, задаваемого символом операции =. При выполнении операции значение операнда справа от знака равенства записывается в переменную, указанную слева от знака.

В отличие от других языков программирования в С++ допускается запись в одном предложении сразу нескольких операций присваивания. Например:

Int a,b,c,d;

a=b=c=d=145;

Другая особенность операции присваивания в языке С++ - наличие так называемой комбинированной операции присваивания:

переменная операция = выражение

 

Где переменная – это обычная как-то задаваемая переменная.

Операция – это одна из операция, задаваемых знаками: *, /, +, -, % , << , >> , &, ^ , |.

Выражение – любое выражение.

 

Например:

Int a,b;

a=b=10;

a+=12; // a теперь имеет значение 22

b-=(a+4); // b теперь имеет значение -16

Арифметические выражения.

Приоритет операций и ассоциативность

 

Можно ли в языке C++ выполнять сложные арифметические вычисления? Да, но нужно знать, какие правила языка C++ при этом используются. Например, многие выражения содержат более одной операции. Отсюда возникает вопрос, какая операция должна выполняться первой? Рассмотрим такой оператор:

 

int i = 3 + 4*5; //35 или 23?

 

Здесь число "4" является операндом как в операции сложения (+), так и в операции умножения (*). Когда один операнд может участвовать более чем в одной операции, чтобы решить, какая операция должна выполняться первой, в языке C++ применяются правила приоритета операций. Для арифметических операций используется обычная алгебраическая приоритетность, в соответствии с которой умножение, деление и деле­ние по модулю выполняются перед сложением и вычитанием. Таким образом, 3+4*5 означает 3 + (4 * 5), а не (3 + 4) *. 5. Следовательно, ответ будет 23, а не 35.

Порядок выполнения операций можно, разумеется, изменить с помощью круглых скобок. Об­ратите внимание на то, что операции *, / и % имеют одинаковый приоритет. Аналогично сложение и вычитание облада­ют одинаковым, но более низким по сравнению с умножением приоритетом.

Однако в некоторых случаях правил приоритетности недостаточно. Рассмотрим сле­дующий оператор:

 

float j = 120/4*5; // 150 или 6?

 

Число "4" снова является операндом двух операций. Однако операции /и * имеют одинаковый приоритет, поэтому одного приоритета здесь недостаточно, чтобы опреде­лить, что делать в первую очередь: делить 120 на 4 или умножать 4 на 5. А этот порядок имеет значение, так как в первом случае результат равен 150, а во втором — 6. Когда две операции имеют одинаковый приоритет, порядок выполнения операций определяется правилом «слева направо».

Поэтому j=150.0;








Дата добавления: 2016-04-22; просмотров: 685;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.004 сек.