Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

2_Operacii_i_vyrazhenija

.pdf
Скачиваний:
20
Добавлен:
14.03.2016
Размер:
216.65 Кб
Скачать

Лекция №2. Операции и выражения в языке Си

Выражения Операнды Операции

Приведение типов в выражениях

1

Выражения

Вычисления в программе выполняются с помощью выражений Простейший способ организации вычислений в

программе — использование оператора выражения:

<выражение>;

Пример:

a = b + 3;

Выражения строятся из операндов, объединенных знаками операций Тип выражения фиксирован, а значение определяет-

2 ся во время выполнения программы

Операнды

Данные, над которыми выполняется операция, называются операндами

Операндами могут быть: Константы: 0.5 < 'f' Переменные: tmp = a

Выражения : cos(a) > pi или y = 2 * (x + 5)

3

Операции

 

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

+

-

* /

 

%

++x

x++

 

 

--x

x--

 

 

 

 

Операции отношения

==

!=

<

<=

>

>=

 

Логические операции

!

&&

||

 

 

 

 

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

~

&

|

^

<<

>>

 

 

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

=

*=

/=

 

%=

+=

-=

 

 

<<=

 

>>=

 

&=

^=

|=

 

Условная операция

? :

 

 

 

 

 

 

 

Адресные операции

&

*

 

 

 

 

 

 

Операции над массивами

[]

 

 

 

 

 

 

 

Операции над структурами

.

->

 

 

 

 

 

Операция преобразования типа

(<тип>)x

 

 

 

 

 

Операция определения размера

sizeof(x)

 

 

 

 

4

выделяемой памяти

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Свойства операций

Арность операции - это количество ее операндов: унарная, бинарная, тернарная (трехместная). Например, ! – унарная операции, + - бинарная операции, ? : - трехместная операция

Приоритет операции — определяет порядок выполнения операций: высокий, средний, низкий. Например, операция деления / имеет более высокий приоритет, чем операция присваивания =

5

Свойства операций

Типы операндов — операция выполняется над операндами только заданного типа. Например, операция целочисленного деления % применима только к целым числам

Возможно сущестование нескольких версий одной операции, каждая из которых применима к определенному типу данных. Например, операция умноже-

ния + применима ко всем скалярным типам данных, т.е. int + int, float + float, double + double и

6 т.д.

Свойства операций

Тип возвращаемого значения — операция всегда возвращает значение определенного типа. Например, операция % вовзращает целочисленное значение, а

операция + возвращает значение в зависимости от используемой версии: int + int => int, float + float => float и т.д.

Ассоциативность операции — определяет порядок вычисления операций с одинаковым приоритетом: слева-направо, справа-налево

7

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

 

 

 

 

 

Операция

 

 

 

Ассоциативность

 

[]

() .

 

->

а++

а--

 

 

 

слева направо

 

++а

--a

~

!

унарная *

&

+

-

 

 

sizeof

 

 

 

 

 

 

 

справа налево

 

(<тип>)

 

 

 

 

 

 

 

справа налево

 

бинарная *

/

%

 

 

 

 

слева направо

 

+

-

 

 

 

 

 

 

 

слева направо

 

<<

>>

 

 

 

 

 

 

 

слева направо

 

<

>

<=

 

>=

 

 

 

 

слева направо

 

==

!=

 

 

 

 

 

 

 

слева направо

 

&

 

 

 

 

 

 

 

 

слева направо

 

^

 

 

 

 

 

 

 

 

слева направо

 

|

 

 

 

 

 

 

 

 

слева направо

 

&&

 

 

 

 

 

 

 

 

слева направо

 

||

 

 

 

 

 

 

 

 

слева направо

 

? :

 

 

 

 

 

 

 

 

справа налево

 

=

+=

-

+

*=

/=

%=

&= ^=

 

 

8

|=

<<=

 

>>=

 

 

 

 

 

справа налево

,

 

 

 

 

 

 

 

 

слева направо

Свойства операций

 

Побочный эффект операции — это изменение зна-

 

чения одного из операндов. Операнд должен быть L-

 

value-выражением

 

L-value (left value)-выражение — это выражение,

 

ссылающееся на участок в памяти. Такое название

 

дано, потому что только L-value-выражения могут

 

встречаться в левых частях оператора присваивания

 

К L-value-выражениям, например, относятся:

 

переменная: a

9

обращение к элементу массива: mass[2]

Операции с побочным эффектом

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

++x

x++

--x

x--

 

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

= *=

/=

%=

+=

-=

 

<<=

>>=

&=

^=

|=

10

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]