Студопедия

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

КАТЕГОРИИ:

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






Операции языка Си






В языке существует большое количество операций (операторов). С помощью операций языка выполняются вычисления, сравнения, присваивания, а также ряд специфических задач. Наиболее часто используемые приведены в табл. 4.1. При выполнении операторов учитываются следующие особенности их исполнения:

а) каждой операции соответствует определенное количество операндов:

– унарные операции, имеющие только один операнд, например, операция взятия адреса переменной x запишется так: & x, а операция инкрементирования переменной i: i++;

– бинарные операции, имеющие два операнда, например, простейшие арифметические операции сложения, вычитания и т.д.: a+b или 4*x;

– единственная трехоперандная операция в языке – операция выполнения условия < операнд1>? < операнд2>: < операнд3>.

б) некоторые операции могут работать только с определенными типами данных, например, побитовые операции применяются только к целым типам данных;

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

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

Таблица 4.1.

Опера-ция Назначение Пример Прио-ритет
  Первичные операции    
[] индекс массива x[2][0]=5;  
() вызов функции, очередность выполнения y=sin(6.28*(x+1));  
. элемент структуры (прямой доступ) time.tm_hour=5;  
-> элемент структуры (косвенный доступ) time-> tm_hour=5;  
  Унарные операции    
++ инкремент (увеличение на единицу) i++  
–– декремент (уменьшение на единицу) i––  
sizeof размер в байтах x=sizeof(int);  
(тип) преобразование типа y=(float)5/2;  
- унарный минус (изменение знака) y=-x;  
* косвенная адресация int x=*y;  
& взятие адреса scanf(“%d”, & x);  
  Арифметические операции    
* умножение 20*x  
/ деление x/10  
% деление по модулю x%10  
+ сложение x+20  
вычитание 40–x  
  Битовые операции    
~ побитовое НЕ y=~x;  
< < побитовый сдвиг влево y=x< < 1;  
> > побитовый сдвиг вправо y=x> > 1;  
& побитовое И y=x& 15;  
^ побитовое исключающее ИЛИ y=x^15;  
| побитовое ИЛИ y=x|15;  

Продолжение таблицы 4.1.

Опера-ция Назначение Пример Прио-ритет
  Операции отношения    
< меньше if (x< 6)  
> больше if (x> 6)  
< = меньше или равно if (x< =6)  
> = больше или равно if (x> =6)  
== равно if (x==6)  
! = не равно if (x! =6)  
  Логические операции    
! логическое отрицание (операция НЕ) if (! x)  
& & логическое умножение (операция И) if (x> 0 & & x< 6)  
|| логическое сложение (операция ИЛИ) if (x< 0 || x> 6)  
  Условная операция    
?: при условии a> b? 10; -10  
  Операции присваивания    
= присваивание x=5  
*= присвоение произведения x*=3  
/= присвоение частного x/=3  
%= присвоение остатка x%=3  
+= присвоение суммы x+=3  
–= присвоение разности x–=3  
< < = присвоение левого сдвига x< < =3  
> > = присвоение правого сдвига x> > =3  
& = присвоение И x& =3  
^= присвоение исключающего ИЛИ x^=3  
|= присвоение ИЛИ x|=3  
  Прочие операции    
, запятая a=1, b=2;  

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

mylektsii.su - Мои Лекции - 2015-2024 год. (0.006 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал