Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие 3000101.doc
Скачиваний:
9
Добавлен:
30.04.2022
Размер:
370.18 Кб
Скачать

Контрольные вопросы

1. Какова структура программы на Си?

2. Какие константы используются в Си?

2. Операции и основные типы данных

2.1. Операции

Для записи операторов используют операции, приведенные в табл. 1.

Таблица 1

Операция Наименование Операция Наименование

! Логическое НЕ ~ Побитовое дополнение

+ Сложение - Вычитание, арифмети-

* Умножение ческое отрицание

/ Деление % Остаток

<< Сдвиг влево >> Сдвиг вправо

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

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

== Равно != Не равно

& Побитовое И, адресация | Побитовое ИЛИ

^ Побитовое исключ. ИЛИ && Логическое И

|| Логическое ИЛИ , Последовательное выполне-

?: Операция условного вы- ние (запятая)

ражения ++ Инкремент

-- Декремент = Простое присваивание

+= Сложение с присваиванием -= Вычитание с присваиванием

*= Умножение с присваиванием /= Деление с присваиванием

%= Остаток с присваиванием >>= Сдвиг вправо с присваиванием

<<= Сдвиг влево с присваиванием &= Побитовое И с присваиванием

|= Побитовое ИЛИ с присваи- ^= Побитовое исключающее

ванием ИЛИ с присваиванием

Значение логического выражения, отличное от 0, истинно.

Си/Си++ поддерживает определения для множества базовых или “основных” типов данных. Представление в памяти, область значений величин различных типов, преобразование типов изложены в /1 – 4/.

Типы signed char, signed int, signed short int и signed long int вместе с соответствующими двойниками unsigned называются типами целых.

Спецификаторы типов float и double относятся к типу "плавающих".

Тип void может быть использован для объявления функций, не возвращающих значения.

В целых типах ключевое слово signed может быть опущено. Если ключевое слово unsigned опускается, то тип целого будет знаковым (signed).

В некоторых реализациях могут быть использованы опции компилятора, позволяющие изменить умолчание для типа char со знакового на беззнаковый. Тогда сокращение char имеет то же значение, что и unsigned char.

Для преобразования типа выражения необходимо в скобках перед ним записать требуемый тип:

(int)1.2; (double)(a+3); (float)i; (long)(6785*3.5/x);

Определить размер памяти в байтах, соответствующий идентификатору или типу позволяют операция sizeof:

sizeof(char); sizeof(int); sizeof(b); sizeof(float);

Операция sizeof обычно используют при выделении памяти под переменные для того, чтобы избежать машинной зависимости:

buf=(int *)malloc(100*sizeof(int)); // выделение памяти для 100 целых.

Запретить изменение переменной позволяет модификатор const :

const float i=1;

Переменные const имеют ту же зону видимости, что и переменные static. Const, в отличие от директивы #define, контролирует типы.

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