Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лекции C.DOC
Скачиваний:
3
Добавлен:
16.08.2019
Размер:
41.47 Кб
Скачать

Данные Скалярные данные Целые данные: char, short, int, long.

Количество битов для целых в языке не фиксировано, но обязательно соотношение: sizeof(char) <= sizeof(short) <= sizeof(int) <= sizeof(long).

Для IBM PC разме, соответственно: 8, 16, 16 или 32, 32 бита.

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

Операции допустимые для целых типов:

Арифметика: +, –, *, / (с отбрасыванием дробной части), % (взятие по модулю);

Логика: && (И), || (ИЛИ), ! (НЕ)), здесь – 0-ложь, не равно 0 значит истина; результат: 0 - ложь, 1 - истина;

Например: a=5, b=0, тогда a||b=1, а .a&&b=0

Побитовые операции: & (И), | (ИЛИ), ~(НЕ), ^(ИСКЛЮЧАЮЩЕЕ ИЛИ), >>, << побитовые сдвиги.

Например: a=2, b=5, a&b=0 ,a|b=7 .

a>>b сдвиг вправо содержимого переменной a на b разрядов. Если a – знаковое, сдвиг вправо также знаковый, т.е. в знаковый разряд расширение знака.

Сравнение: < , <= , >, >=, != (не равно), == (равно)

В качестве операндов любые целые числа, в качестве результата 0 или 1

Вещественные данные: float, double

Всегда перед выполнением операции, float преобразовывается в double

Операции: +, –, *, /, <, <=, >, >=, != ,==. Со сравнениями на равенство/неравенство надо быть осторожным.

Определение данных:

тип имя1, ...;

Например:

int a,b;

char c;

float f1, f2;

Структурирование данных

Массивы:

Массивы: одномерные, многомерные

Определение:

тип имя[размер1][размер2]…;

Например:

int а[5][3], с[20];

здесь в квадратных скобках [количество элементов]

Все индексы массивов начинаются с 0, т.о. с[0] – первый элемент, с[19] – последний элемент.

Обращение: а[индекс1][индекс2].

В памяти быстрее меняется последний индекс.

Структуры:

Описание:

struct имя_структуры{

тип_поля1 имя_поля1;

...;

};

Здесь: имя_структуры – имя структуры, имя_поля1 – имя поля

Тип поля: как скалярные, так и структурные, т.е. допустимо вложенное описание.

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

Определение структурной переменной:

struct имя_структуры имя1, имя2, …;

Эта строчка уже резервирует память.

Доступ к переменным: (к полям)

имя1.имя_поля1 – доступ к полю имя_поля1 структурной переменной имя1. Выражение имеет тип соответствуюющего поля.

Указатели

Указатели в языке типизированы (т.е. указатель указывает на объект определенного типа)

Определение переменной типа указателя на объект определенного типа:

тип *имяР, …;

Например:

int *Рi;

Pi – указатель на целое, т.е. может содержать адрес целой переменной

Операции:

Взятия адреса: & (унарная операция)

Разименование (получение значения по указанному адресу): * (унарная операция)

Например:

Рi = &a; a – целая переменная, Рi – указатель на целое

a = *Рi; a – целая переменная, Рi – указатель на целое

ВЫРАЖЕНИЯ

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

Пример: а+5 , S.имя_поля

Операция присваивания = : а=5. Значением операции является результат присваивания.

ОПЕРАТОРЫ

В языке все операторы завершаются символом «точка с запятой»

Оператор-выражение

Если после любого выражения поставить «точка с запятой», то получится оператор-выражение.

Пустой оператор

Одинокая «точка с запятой»

Блок

или составной оператор – последовательность операторов, заключенная в фигурные скобки { }

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

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