ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 24.07.2024
Просмотров: 65
Скачиваний: 0
function name (expression 1, ... , expression n)
где expression 1… expression n - аргументы функции.
Преобразования аргументов. Компилятор может заставить аргументы изменить их тип, например как в следующем коде:
int limit = 32;
char ch = 'A' ;
long res;
extern long func(long parl, long par2); // прототип
main ()
{
…
res = func(limit, ch); // вызов функции
}
Получив прототип функции func, программа преобразует limit и ch к виду long, используя стандартные правила преобразования, перед тем, как положит их в стек для вызова функции func.
Операторы
Операторы – символы, сообщающие компилятору о необходимости выполнения каких-либо математических или логических действий.
Есть три больших класса операторов: арифметические, отношения и логические, битовые. Кроме этого существуют специальные операторы: оператор запятая (,),условный оператор (?), оператор массива ([]), оператор вызова функции (()), оператор (Sizeof), операторы препроцессора (#) и (##) и т.д.
Приоритеты операторов и порядок их выполнения
Есть 15 степеней приоритета, некоторые из них содержат только один оператор. Операторы одной категории имеют равный приоритет. Если в таблице появляются дубликаты операторов, то первое появление унарный оператор, во втором случае - бинарный. В каждой категории операторы имеют порядок выполнения: слева направо, или справа налево. При отсутствии круглых скобок, эти правила решают группирование выражений с операторами равного приоритета.
-
Приоритет
Операторы
Порядок выпонения
15(высший)
() [] . ->
→
14
! ˜ + -- ++ -* & (тип) sizeof
←
13
* / %
→
12
+ - (бинарный)
→
11
<< >>
→
10
< <= > >=
→
9
== !=
→
8
&
→
7
ˆ
→
6
│
→
5
&&
→
4
║
→
3
?;
←
2
= *= /= %= += .= &= »= |= «= » =
←
1 (низший)
,
-
Арифметические операторы
Арифметические операторы используются для выполнения математических вычислений. Они имеют цифровые операнды и возвращают числовые. Все арифметические операторы выполняются слева направо.
оператор |
действие |
Бинарные операторы |
|
+ |
сложение |
- |
вычитание |
* |
умножение |
/ |
деление |
% |
взятие по модулю (остаток) - возвращает разность деления целого (не может быть использован для чисел с плавающей точкой) |
Унарные операторы |
|
+ |
унарный плюс (не влияет на операнд) |
- |
унарный минус (меняет знак операнда) |
++ |
увеличение (приращение) увеличивает значение на 1, если стоит после оператора – (постфиксный), то добавляет значение после получения программой операнда, если перед операндом(префиксный), то программа производит увеличение до получения операнда. Если х=10; y=++x; y устанавливается в значение 11, а если x=10; y=x++; у устанавливается в значение10. |
-- |
уменьшение (префиксный и постфиксный операторы –см. выше) |
Операторы отношения
Применяются для вычисления соотношений между. Если выражение истинно, возвращается 1, в противном случае 0. Все операторы отношения выполняются слева направо.
оператор |
действие |
== |
равно |
!= |
не равно |
> |
больше чем |
< |
меньше чем |
>= |
больше или равно |
<= |
меньше или равно |
Битовые операторы
Предназначены для тестирования, установки или сдвига битов в байте или слове, которые соответствуют стандартным типам char и int, не могут использоваться с float, double,long и другими сложными типами. Выполняются слева направо, кроме оператора дополнения - выполняется справа налево.
-
оператор
действие
&
И (AND) - сравнение пары битов, возвращает 1 если оба бита - 1, иначе 0.
I
ИЛИ (OR)возвращает 1 если хотя бы один бит равен 1, иначе 0.
ˆ
Исключающее ИЛИ (XOR) возвращает 1 если соответствующие биты в операндах отличаются, иначе 0.
˜
Дополнение инвертирует каждый бит
«
Сдвиг влево - сдвигает биты влево, уничтожает крайний левый бит и записывает 0 в крайний правый бит.
»
Сдвиг вправо - сдвигает биты вправо, уничтожает крайний правый бит права и в крайний левый бит записывет 0.
Логические операторы
Операнды логических операций считаются истиной или ложью, отличными от нуля или равными нулю. Логические операторы всегда возвращают соотношение между операндами, т.е 1 или 0. Логические операторы && и || выполняются слева направо, кроме оператора отрицания (!) - справа налево.
Оператор |
Действие |
&& |
Логическое И (AND) |
|| |
Логическое ИЛИ (OR) |
! |
Логическое НЕ |
Условный оператор (?)
Условный оператор (?) : - единственный троичный оператор. Синтаксис оператора имеет вид:
<выражение1> ? <выражение2> : <выражение3>
Оператор (?) работает следующим образом: вычисляется выражение1, если оно истинно, то вычисляется выражение2 и все выражение получает это значение. Если оно ложно, то вычисляется выражение3 и все выражение получает это значение, например:
x=10;
y=x>9 ? 100 : 200;
Здесь y получает значение 100, если бы х было меньше, чем 9, то получило бы значение 200.
Оператор присваивания
Простой оператор присваивания (=) применяется для присвоения значения выражения 2 выражению1, в качестве выражения1 может быть переменная, а выражения2 - как одиночная константа, так и комбинация переменных, операторов и констант.
х = 2;
Многочисленное присваивание
Допускается присвоение нескольким переменным одного и того же значения.
x=y=z=0;
Выражения
Операторы, константы и переменные являются составными частями выражений. Выражения – любая допустимая комбинация этих частей.
Операторы управления программой
С помощью этих операторов можно изменять порядок выполнения программы. При отсутствии операторов перехода и операторов выбора, операторы программы выполняются последовательно в порядке появления в исходном коде. Операторы управления программой можно разделить на:
метки, выражения, выбора, циклов, перехода и сложные операторы.
Оператор метки
Метка – идентификатор, завершаемый двоеточием:
label_identifier: оператор;
Обычно метка используется с оператором goto
x=1;
loop1: x++;
if (x<100) goto loop1;
Операторы выражения. Любое выражение, стоящее перед точкой с запятой формирует оператор выражения.
Пустой оператор (обычно используются в циклах без тела) может состоять из единственной точки с запятой (;).
Если пустой оператор использован вместе с условным оператором, то синтаксис оператора:
for (; *q++ = *p++ ;); //в цикле отсутствует тело.
С помощью пустого оператора можно организовать, например, задержку.
for (t=0; t<100; t++);
Оператор выбора
Используется для проверки условий, определяющих, какое действие нужно проводить. Если выражение оценивается как истинное, выполняется оператор1, если ложное – оператор2.