Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
shpory_si.docx
Скачиваний:
33
Добавлен:
25.09.2019
Размер:
205.61 Кб
Скачать

8. Операции языка с. Условная операция. Операция (), операция [].

Комбинация знаков операций и операндов, результатом которой является определенное значение, называется выражением.

Операнд - это константа, литерал, идентификатор, вызов функции, индексное выражение, выражение выбора элемента или более сложное выражение, сформированное комбинацией операндов, знаков операций и круглых скобок. Любой операнд, который имеет константное значение, называется константным выражением. Каждый операнд имеет тип.

Оператор – это часть программы, которая может быть выполнена отдельно, т.е. оператор определяет некоторое действие.

Язык С содержит большое количество встроенных операций. Существует 5 основных класса операций:

– арифметические;

– логические;

– поразрядные;

– сравнения (присваивания);

– присваивания.

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

Тернарное выражение состоит из трех операндов, разделенных знаками тернарной операции (?) и (:),и имеет формат:

выражение1 ? выражение 2 : выражение 3

Сначала вычисляется выражение 1. Если оно истинно, то вычисляется выражение 2 и его значение присваивается всему выражению. Если выражение 1 ложно, то вычисляется выражение 3 и всему выражению присваивается его значение. Операции() и []

() Операция преобразования (или приведения) типа.

Эта бинарная операция в контексте так называемого постфиксного выражения и в контексте выражения приведения обеспечивает изменение типа значения выражения, представляемого вторым операндом. Информация о типе, к которому преобразуется значение второго операнда, кодируется первым выражением, которое является спецификатором типа. Существуют две формы операции преобразования типа: каноническая, при которой в скобки заключается первый операнд (в выражениях приведения), и функциональная (в постфиксных выражениях), при которой в скобки заключается второй операнд. При функциональной форме операции преобразования типа спецификатор типа представляется одним идентификатором. Для приввведениия значения к типу unsigned long следует использовать лишь каноническую форму операции преобразования. Механизм преобразования типа рассматривается ниже

Операция индексации

[] Операция индексации.

Играет роль бинарной операции при индексации элементов массива (определение массива приводится ниже). Левый операнд представляет собой выражение, значением которого является адрес первого элемента массива. Правый операнд является выражением, определяющим значение индекса, т.е. смещения относительно первого элемента массива.

9. Приоритет операций и порядок вычислений.

Правила записи выражений в языках высокого уровня:

 все символы записываются в строку;

 в выражении проставляются все знаки операций;

 при записивыражений учитываются приоритеты операций;

 для влияния на последовательность операций используются ().

В языке С операции с высшими приоритетами вычисляются первыми. Наивысшим приоритетом является приоритет равный 1. Приоритеты и порядок операций приведены в таблице 12.

Таблица 12

Приоритет

Знак операции

Типы операции

Порядок выполнения

1

- ~ ! * & ++ -- sizeof приведение типов

Унарные

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

2

() [] . ->

Выражение

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

3

* / %

Мультипликативные

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

4

+ -

Аддитивные

5

<< >>

Сдвиг

6

< > <= >=

Отношение

7

== !=

Отношение (равенство)

8

&

Поразрядное И

9

^

Поразрядное исключающее ИЛИ

10

|

Поразрядное ИЛИ

11

&&

Логическое И

12

||

Логическое ИЛИ

13

? :

Условная

14

= *= /= %= += -= &= |= >>= <<= ^=

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

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

15

,

Последовательное вычисление

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

Правила преобразования типов при выполнении бинарных операций в языке Си:

 для всех операций, кроме операции присваивания, при разных типах операндов

происходит преобразование величины с младшим типом к старшему;

 при выполнении операции присваивания величина, полученная в правой части

преобразуется к типу переменной, стоящей слева от знака =.

10. Основные сведения о вводе-выводе

Возможности для ввода и вывода не являются частью самого языка С. Между тем реальные программы взаимодействуют со своим окружением гораздо более сложным способом, чем те, которые были затронуты ранее.

Библиотечные функции ввода-вывода точно определяются стандартом ANSI, так что они совместимы на любых системах, где поддерживается С. Программы, которые в своем взаимодействии с системным окружением не выходят за рамки возможностей стандартной библиотеки, можно без изменений переносить с одной машины на другую.

Свойства библиотечных функций специфицированы в более чем дюжине заголовочных файлов .

Во всех приведённых примерах программы первыми строчными являлись:

#include

#include

Данное описание сообщает компилятору о необходимости подключения файлов stdio.h и conio.h. Эти файлы содержат информацию, необходимую для правильного выполнения функций библиотеки стандартноговвода-вывода.

В файле stdio.h находится информация о стандартных функциях ввода-вывода. В файле conio.h находится функция getch(), которая ждет нажатия любой клавиши (читает символ, введенный пользователем с клавиатуры без вывода ее на экран).

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