Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка_По_А_Я.docx
Скачиваний:
2
Добавлен:
18.11.2018
Размер:
90.19 Кб
Скачать

1.2.3. Данные плавающего типа

Для переменных, представляющих число с плавающей точкой используются следующие модификаторы-типа : float, double, long double (в некоторых реализациях языка long double СИ отсутствует).

Величина с модификатором-типа float занимает 4 байта. Из них 1 бит отводится для знака, 8 бит для избыточной экспоненты и 23 бита для мантиссы. Отметим, что старший бит мантиссы всегда равен 1, поэтому он не заполняется, в связи с этим диапазон значений переменной с плавающей точкой приблизительно равен от 3.14E-38 до 3.14E+38.

Величина типа double занимает 8 байт в памяти. Ее формат аналогичен формату float. Биты памяти распределяются следующим образом: 1 бит для знака, 11 бит для экспоненты и 52 бита для мантиссы. С учетом опущенного старшего бита мантиссы диапазон значений равен от 1.7E-308 до 1.7E+308.

Примеры:

float f, a, b;

double x,y;

1.2.12. Инициализация данных

При объявлении переменной ей можно присвоить начальное значение, присоединяя инициатор к описателю. Инициатор начинается со знака "=" , далее следует начальное значение.

Примеры:

int x= 1, y,z=0;

float t=0.56, s= -7.345, q;

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

1.3.1. Выражения

Выражение – одно из основных понятий языка Си. Из простейших выражений при помощи операций строятся новые выражения, значения которых вычисляются в процессе выполнения программы.

Под выражением понимаются следующие конструкции:.

Имена переменных, функций,констант, массивов, вызовы функций, ссылки на массивы, структуры и объединения (некоторые из этих понятий будут объяснены позже) являются выражениями.

Выражение, обрамленное круглыми скобками, является варажением.

Знак-унарной-операции выражение тоже является выражением.

Выражение1 знак-бинарной-операции выражение2 - выражение.

Из трех выражений при помощи тернарной операции строится новое выражение:

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

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

Каждое выражение (и операнд) в процессе вычисления принимает некоторое значение определенного типа.

Значение константы равно самой константе. Значение переменной равно значению, которое содержится в соответствующей поименованной области памяти. О значениях остальных исходных выражений мы поговорим позже. Для того, чтобы понять, как определяются значения более сложных выражений, рассмотрим операции языка Си.

1.3.2. Операции

По количеству операндов, участвующих в операции, операции подразделяются на унарные(с одним операндом) , бинарные (с двумя операндами) и тернарные ( с тремя).

В таблицах 7.1 и 7.2 приведены все операцияя языка Си.

Таблица 7.1 Унарные операции

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

Операция

( )

Вызов функции

[ ]

Ссылка на элемент массива

–>

Ссылка на член структуры с помощью указателя

.

Ссылка на член структуры

-

Унарный минус

+

Унарный плюс

++

Инкремент

--

Декремент

!

Логическое отрицание

~

Одинарное дополнение

*

Ссылка на указатель

&

Адрес

sizeof

Размер объекта

(type)

Приведение (преобразование) типов

Таблица 7.2 Бинарные и тернарная операции.

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

Операция

Группа операций

*

Умножение

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

/

Деление

%

Остаток от деления

+

Сложение

Аддитивные

-

Вычитание

<<

Сдвиг влево

Операции сдвига

>>

Сдвиг вправо

<

Меньше

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

<=

Меньше или равно

>=

Больше или равно

==

Равно

!=

Не равно

&

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

Поразрядные операции

|

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

^

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

&&

Логическое И

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

||

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

? :

Условный оператор

Тернарная операция

=

Присваивание

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

*=

Умножение с присваиванием

/=

Деление с присваиванием

%=

Остаток от деления с присваиванием

-=

Вычитание с присваиванием

+=

Сложение с присваиванием

<<=

Сдвиг влево с присваиванием

>>=

Сдвиг вправо присваиванием

&=

Поразрядное И с присваиванием

|=

Поразрядное ИЛИ с присваиванием

^=

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

,

Запятая

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

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

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

Левый операнд операции присваивания должен быть выражением, ссылающимся на область памяти (но не объектом, объявленным с ключевым словом const), такие выражения называются леводопустимыми. К ним относятся:

- идентификаторы данных целого и плавающего типов, типов указателя, структуры, объединения;

- индексные выражения, исключая выражения имеющие тип массива или функции;

- выражения выбора элемента (->) и (.), если выбранный элемент является леводопустимым;

- выражения унарной операции разадресации (*), за исключением выражений, ссылающихся на массив или функцию;

- выражение приведения типа если результирующий тип не превышает размера первоначального типа.

Замечание. На первом этапе в роли леводопустимых операндов будут выступать только идентификаторы – имена переменных.

Выполнение операции операнд1 = операнд2 происходит следующим образом:

вычисляется значение операнда2 и помещается в область памяти, на который ссылается операнд1 (при этом значение, которое хранилось там ранее, уничтожается)

Значение выражения операнд1 = операнд2 равно значению операнда2.