Основные операторы c: Операторы языка Си — it-black.ru

C Приоритет и ассоциативность операторов: определение и примеры

В этом руководстве вы узнаете о приоритете и ассоциативности операторов с помощью примеров.

Приоритет операторов

Приоритет операторов определяет, какой оператор выполняется первым, если в выражении более одного оператора.

Рассмотрим пример:

 int x = 5 - 17* 6; 

В C приоритет * выше, чем - и = . Следовательно, 17 * 6 оценивается первым. Затем вычисляется выражение, включающее -, так как приоритет - выше, чем у = .

Вот таблица приоритета операторов от высшего к низшему. Вскоре мы обсудим свойство ассоциативности .


Таблица приоритета и ассоциативности операторов

9
Оператор Значение оператора Ассоциативность
()
[]
->
.
Функциональный вызов
Ссылка на элемент массива
Косвенный выбор элемента
Прямой выбор элемента
Слева направо
!
~
+

++

и
*
размер
(тип)
Логическое отрицание
Побитовое (1) дополнение
Унарный плюс
Унарный минус
Приращение
Декремент
Разыменование (адрес)
Ссылка на указатель
Возвращает размер объекта
Приведение типов (преобразование)
Справа налево
*
/
%
Умножить
Разделить
Остаток
Слева направо
+
Двоичный плюс (сложение)
Двоичный минус (вычитание)
Слева направо
<<
>>
Сдвиг влево
Сдвиг вправо
Слева направо Побитовое исключающее ИЛИ Слева направо
| Побитовое ИЛИ Слева направо
&& Логическое И Слева направо
|| Логическое ИЛИ Слева направо
?: Условный оператор Справа налево
=
*=
/=
%=
+=
-=
&= 9=
|=
<<=
>>=
Простое присваивание
Присвоить произведение
Присвоить частное
Присвоить остаток
Присвоить сумму
Присвоить разность
Присвоить побитовое И
Присвоить побитовое XOR
Присвоить побитовое ИЛИ
Присвоить сдвиг влево
Присвоить сдвиг вправо
Справа налево
, Разделитель выражений Слева направо

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

Ассоциативность операторов определяет направление, в котором вычисляется выражение. Например,

 б = а; 

Здесь значение a присваивается b , а не наоборот. Это потому, что оператор = ассоциативен справа налево.

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

Рассмотрим пример:

1 == 2 != 3 

Здесь операторы == и != имеют одинаковый приоритет. И их ассоциативность слева направо. Следовательно, 1 == 2 выполняется первым.

Приведенное выше выражение эквивалентно:

(1 == 2) != 3 

Примечание: Если оператор содержит несколько операторов, вы можете использовать круглые скобки () , чтобы сделать код более читабельным.

Содержание

С | Операторы | Codecademy

Операторы используются для выполнения операций над переменными и значениями. Это символы, которые говорят компилятору выполнять определенные математические или логические функции. Язык C предоставляет следующие типы операторов:

  • Арифметические операторы
  • Реляционные операторы
  • Логические операторы
  • Побитовые операторы
  • Операторы присваивания
  • Разные операторы

Арифметические операторы

C имеет следующие основные арифметические операторы для выполнения общих математических операций:

Оператор Имя Описание
+ Дополнение x + y возвращает сумму x и y
-
Вычитание
x - y возвращает разницу между x и y
* Умножение x * y возвращает произведение x и y
/ Отдел x/y возвращает частное x и y
% Модуль x % y возвращает целочисленный остаток от деления x на y
++ Приращение х++ возвращает х + 1
-- Уменьшение х-- возвращает х - 1
 
 

инт х = 0;

х = х + 4; // x теперь 4

x = x - 1; // x теперь 3

x = x * 8; // х теперь 24

х = х / 4; // x теперь 6

x = x % 4; // x теперь 2

x++; // x теперь 3

x--; // x теперь 2

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

Операторы сравнения сравнивают два значения и возвращают true или ложь .

Оператор Имя Описание
== Равно x == y равно true , если x и y равны.
!= Не равно x != y равно true , если x и y не равны.
< Менее x < y равно true , если
x
меньше y .
> Больше x > y равно true , если x больше y .
<= Меньше или равно x <= y равно true , если x меньше или равно и .
>= Больше или равно x >= y равно true , если x больше или равно y .
 
 

инт х = 7;

инт у = 5;

if (x > y) {

// Этот код будет выполнен.

}

if (x == y) {

// Этот код не запустится.

}

Логические операторы

Логические операторы работают с логическими значениями и возвращают логические значения.

Оператор Имя Описание
! Не !x равно true , когда x равно false и false , когда x равно true .
&& и x && y равно true , только если x и y оба равны true .
|| или х || y равно true , если либо x , либо y равно true .
 

инт х = 7;

инт у = 5;

if (x > y \|\| x == y) {

// Этот код будет выполнен.

}

если (x == y && x < 0) {

// Этот код не запустится.

}

Побитовые операторы

Побитовые операторы манипулируют отдельными битами в целом числе.

Оператор Имя Описание
и и Бит результата установлен только в том случае, если этот бит установлен в обоих операндах.
| или Бит результата установлен, если этот бит установлен в любом из операндов. 9 Ксор Бит результата установлен, только если этот бит установлен только в одном операнде.
~ Не Берет один операнд и инвертирует в нем каждый бит.
<< Левая смена a << b означает, что биты a смещены влево на b пробелов.
>> Правый сдвиг 1 = 10100

х = 7 << 2;

// х равно 28 : 00111 << 2 = 11100

х = 19 >> 2;

// x равно 4 : 10011 >> 2 = 00100

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

Операторы присваивания присваивают значение справа переменной слева.

Оператор Имя Описание
= Задание a = 3 присваивает значение 3 переменной a .
+= Дополнительное задание а += 3 является сокращением от а = а + 3 .
-= Задание на вычитание а -= 3 сокращение от а = а - 3 .
*= Назначение умножения а *= 3 — это сокращение от a = a * 3 .
/= Назначение отдела а /= 3 является сокращением от а = а / 3 .
%= Присвоение по модулю a %= 3 является сокращением от a = a % 3 .
&= и присвоение a &= 3 является сокращением от a = a & 3 . 93 .
<<= Назначение левой смены a <<= 3
является сокращением от a = a << 3 .
>>= Назначение правой смены a >>= 3 — это сокращение от a = a >> 3 .

Разные операторы

Разные операторы не относятся к определенной категории.

Оставить комментарий

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

© 2019 Штирлиц Сеть печатных салонов в Перми

Цифровая печать, цветное и черно-белое копирование документов, сканирование документов, ризография в Перми.