
- •1.K&r c. Ansi c и iso c. Стандарт c99
- •Структура компилятора
- •3.Проблемы использования языка Си.
- •5.Числовые константы. Символические константы.
- •6.Идентификаторы. Константные переменные. Основные типы.
- •7.Указатели. Ссылки. Изменение типа данных.
- •8.Одномерные массивы. Символьные массивы.
- •9.Многомерные массивы.
- •10.Структуры.
- •11.Ключевое слово union.
- •12.Переименование типов (typedef).
- •13.Выражения.
- •14.Арифметические операции. Логические операции.
- •15.Операции присвоения.
- •16.Операции отношения. Адресные операции.
- •Адресные операции
- •17.Операции “?:”, sizeof, (тип)
- •18.Составной оператор. Оператор-выражение.
- •19.Условный оператор if. Оператор-переключатель switch. Условный оператор if
- •If (условие) оператор_1; else оператор_2;
- •If (условие) { оператор_1; оператор_2; … }
- •Оператор варианта switch
- •20.Операторы циклов while и do-while.
- •21.Оператор цикла for. Оператор продолжения continue.
- •22.Определение функции. Оператор возврата return. Вызов функции.
- •23.Функция main.
- •24.Поименованные константы и замена идентификаторов. Макросы.
- •If (выражение)
- •25.Включение файлов. Условная компиляция. Включение файла
- •26.Команда error. Команда pragma.
- •27.Обработка особых ситуаций. Обработка try, перехват catch, Спецификация особой ситуации throw.
- •28.Функции-подстановки (inline).
- •29.Операция создания объекта new. Операция delete. Операция new
- •Операция delete
- •30.Инкапсуляция. Наследование.
- •31.Полиморфизм.
- •32.Классы. Члены класса.
- •33.Конструктор. Деструктор. Функции-члены.
- •34.Операция доступа к области видимости “::”. Указатель this.
12.Переименование типов (typedef).
Для того чтобы сделать программу более ясной, можно задать типу новое имя с
помощью ключевого слова typedef:
typedef тип новое_имя [ размерность ]: В данном случае квадратные скобки являются элементом синтаксиса. Размерность может отсутствовать. Примеры:
typedef unsigned int UINT:
typedef char MsgClOO];
typedef struct{
char f1o[30];
int date, code:
double salary:} Worker:
Введенное таким образом имя можно использовать таким же образом, как и имена стандартных типов:
UINT i. j: // две переменных типа unsigned int
Msg str[10]: // массив из 10 строк по 100 символов
Worker staff[100]: // массив из 100 структур
Кроме задания типам с длинными описаниями более коротких псевдопимов,
typedef используется для облегчения переносимости программ: если машинно-зависимые типы объявить с помощью операторов typedef, при переносе программы потребуется внести изменения только в эти операторы.
13.Выражения.
выражения состоят из операндов, знаков операций и
скобок и используются для вычисления некоторого значения определенного
типа. Каждый операнд является, в свою очередь, выражением или одним из его
частных случаев — константой или переменной.
Примеры выражений:
(а + 0.12)/6
х && у II !z
(t * sin(x)-L05e4)/((2 * к + 2) * (2 * к + 3))
Операции выполняются в соответствии с приоритетами. Для изменения порядка
выполнения операций используются круглые скобки. Если в одном выражении записагю несколько операций одинакового приоритета, унарные операции, условная
операция и операции присваивания выполняются справа палево, остальные — слева направо. Например, а = b = с означает а = (Ь = с), а а + b + с означает (а + Ь) + с.
Порядок вычисления подвыражений внутри выражений не определен: например,
нельзя считать, что в выражении (sin(x + 2) + cos(y + 1)) обращение к синусу будет выполнено раньше, чем к косинусу, и что х + 2 будет вычислено раньше, чем
У+1.
Результат вычисления выражения характеризуется значением и типом. Например, если а и b — переменные целого типа и описаны так:
int а = 2. b = 5: то выражение а + b имеет значение 7 и тип 1nt, а выражение а = b имеет значение,
равное помещенному в переменную а (в данному случае 5) и тип, совпадающий
с типом этой переменной. Таким образом, в C++ допустимы выражения вида
а = b = с: сначала вычисляется выражение b = с, а затем его результат становится
правым операндом для операции присваивания переменной а.
В выражение могут входить операнды различных типов. Если операнды имеют
одинаковый тип, то результат операции будет иметь тот же тип. Если операнды
разного типа, перед вычислениями выполняются преобразования типов по определенным правилам, обеспечивающим преобразование более коротких типов
в более длинные для сохранения значимости и точности.
Преобразования бывают двух типов:
• изменяющие внутреннее представление величин (с потерей точности или без
потери точности);
• изменяющие только интерпретацию внутреннего представления.