- •2. Оператор цикла while.
- •Билет 2.
- •Билет 3
- •2. Оператор цикла for
- •Билет 4
- •Билет 5
- •1. Константы
- •1.1 Целые Константы
- •1.3 Символьные Константы
- •1.4 Строки
- •2. Оператор if
- •Билет 6
- •Билет 7
- •1.1 Описания Функций
- •1.2 Определения Функций
- •1.3 Описания
- •2.1.1 Область Видимости
- •2.1.2 Объекты и Адреса (Lvalue)
- •2.1.3 Время Жизни
- •2. Логические операции.
- •Билет 8
- •1. Указатели. Использование указателей при работе с массивами
- •2. Оператор Goto
- •Билет 9
- •2. Указатели и операции над ними.
- •Билет 10
- •Билет 11
- •1. Оператор if
- •2. Строки
- •Билет 12
- •1. Увеличение и уменьшение
- •Билет 13
- •1. Побитовые логические операции
- •2. Функция scanf
- •Билет 14
- •Основные сведения о функциях
- •2. Функции operator new() и operator delete()
- •Билет 15
- •1. Объединения
- •2. Форматный вывод - функция printf
- •Билет 16
- •1. Оператор Выражение
- •2. Области видимости объектов
- •Билет 17
- •1.1 Оператор Return
- •1.2 Оператор Break
- •1.3 Оператор Continue
- •2. Ввод-вывод текстового файла: getc( ), putc( )
- •Билет 18
- •Билет 19
- •1. Аргументы функции main()
- •2. Операции Отношения
- •Билет 20
- •1. Стандартный ввод и вывод - функции getchar и putchar
- •2.1 Оператор typedef
- •Билет 21
- •1. Глобальные переменные
- •2. Открытие файла: fopen( )
- •Закрытие файла: fclose( )
- •Билет 22
- •2. Директивы Препроцессора
- •2.1. Директива #include
- •2.2. Директива #define
- •2.3. Директива #undef
- •Билет 23
- •1. Преобразование типов.
- •2. Операция Запятая
- •Билет 24
- •1. Определение
- •2. Арифметические Преобразования
- •Билет 25
- •Билет 26
- •1. Передача Параметров
- •Билет 27
- •1. Преобразования символов
- •2. Массив и константный указатель
- •Билет 28
- •2. Операции Отношения
- •Билет 29
- •1. Оператор return. Точка вызова и точка возврата
- •Билет 30
- •2. Рекурсивная функция
- •Билет 31
- •2. Функция. Прототип
- •Билет 32
- •2. Генерация случайных чисел
- •Билет 33
- •2. Шаблоны функций и шаблонные функции
2.1 Оператор typedef
В языке Си можно задать имя типа, если его описание достаточно громоздко и его не хочется повторять много раз. В дальнейшем можно использовать имя типа при описании переменных. Для определения типа применяется оператор typedef. Синтаксически оператор typedef аналогичен обычному описанию переменной, к которому в самом начале добавлено слово typedef. При этом вместо переменной определяется имя нового типа.
Мы как бы описываем переменную, добавляя к описанию слово typedef. При этом описываемое имя становится именем нового типа. Его можно использовать затем для задания переменных:
Real x, y, z;
Чаще всего определение типов с помощью typedef используют, когда описание типа достаточно громоздко. Оператор typedef позволяет задать его только один раз, что облегчает исправление программы при необходимости. Например, следующая строка определяет тип callback как указатель на функцию с одним целым параметром, возвращающую значение логического типа:
typedef bool (*callback)(int);
2. 2 Sizeof
Операция sizeof дает размер операнда в байтах. (Байт не определяется языком иначе, чем через значение sizeof. Однако, во всех существующих реализациях байт есть пространтсво, необходимое для хранения char.) При применении к массиву результатом является полное количество байтов в массиве. Размер определяется из описаний объектов, входящих в выражение. Семантически это выражение является беззнаковой константой и может быть использовано в любом месте, где требуется константа.
Операцию sizeof можно также применять к заключенному в скобки имени типа. В этом случае она дает размер, в байтах, объекта указанного типа.
Билет 21
1. Глобальные переменные
2. Открытие файла: fopen( )
Функцией fopen( ) управляют три основных параметра. Первый - имя файла, который следует открыть. Он является и первым аргументом fopen( ). В нашем примере это "File". Второй параметр описывает, как должен использоваться файл:
"r" - файл нужно считать,
"w" - файл нужно записать,
"a" - файл нужно дополнить.
"w+" - новый текстовый файл открывается для записи и последующих многократных исправлений. Если файл уже существует, то предыдущее содержимое стирается. Последующие после открытия файла запись и чтение из него допустимы в любом месте файла, в том числе запись разрешена и в конце файла, т.е. файл может увеличиваться.
"r+" - существующий текстовый файл открывается как для чтения, так и для записи в любом месте файла; однако в этом режиме невозможна запись в конец файла, то есть недопустимо увеличение размеров файла.
"a+" - текстовый файл открывается или создается, если файла нет, и становится доступным для изменений, т.е. для записи и для чтения в любом месте; при этом в отличие от режима "w+"можно открыть существующий файл и не уничтожать его содержимое; в отличие от режима "r+" в режиме "a+" можно вести запись в конец файла, то есть увеличивать его размеры.
Используемые коды являются строками, а не символьными константами.
Некоторые системы предоставляют еще дополнительные возможности, которые мы здесь не будем рассматривать. Используемые коды являются строками, а не символьными константами. При применении "r" открывается существующий файл. При двух других применениях тоже будет открываться существующий файл, но если такого файла нет, он будет создан. Если вы используете "w" для существующего файла, то старая версия его стирается, и ваша программа начинает записывать на чистое место. Третий параметр является указателем на файл. Это значение возвращается самой функцией:
FILE *in;
in=fopen("File","r");
Теперь in является указателем на файл "File". С этого момента программа ссылается на файл при помощи указателя in, а не по имени File. (Файл stdio.h содержит строку
FILE *fopen( )
Если fopen( ) не способна открыть требуемый файл, она возвращает значение NULL, определенное в stdio.h как 0.