
- •1.Базовые элементы языка с. Алфавит и словарь языка
- •2. Основные типы данных. Классификация их типов. Модификация базовых типов.
- •3. Константы.
- •4. Переменные.
- •5. Структура с - программы. Понятие локальных и глобальных переменных. Функция main().Директивы препроцессора (#include и #define). Комментарии.
- •6. Операции языка с. Арифметические, логические операции. Поразрядные операции.
- •7. Операции языка с. Операция присваивания и отношения. Операция определения размера. Оператор последовательного вычисления.
- •8. Операции языка с. Условная операция. Операция (), операция [].
- •9. Приоритет операций и порядок вычислений.
- •11. Ввод-вывод символов
- •12. Форматированный ввод-вывод. Модификаторы формата. Спецификаторы преобразования. Подавление ввода.
- •13. Операторы языка с. Условные операторы (if и switch).
- •16. Одномерные массивы.
- •17. Строковый литерал. Чтение и запись строк.
- •18. Двухмерные массивы. Массивы строк.
- •20.Способы доступа к элементам массива
- •21. Понятие указателя. Инициализация указателей.
- •22. Указательные переменные. Операции получения адреса (&) и раскрытия ссылки(*).
- •23. Указательные выражения. Адресная арифметика.
- •Динамическое выделение памяти для массивов.
- •Функции. Определения функций. Оператор return.
- •Тип_результата id_функции (список);
- •Функции. Прототипы функций.
- •Тип_результата id_функции (список);
- •Функции. Вызов функций: вызов по значению и по ссылке.
- •Тип_результата id_функции (список);
- •Передача массива в функцию.
- •Классы памяти. Область видимости.
- •Аргументы функции main(): argv и argc.
- •Вызов библиотечных функций.
- •Директива препроцессора #define: создание макрофункций с помощью директивы #define.
- •Директивы условной компиляции #if, #else, #elif, #endif, #ifdef, #ifndef.
- •Понятие структуры. Доступ к членам структуры.
- •Присваивание структур.
- •Id_структуры . Id_поля
- •Передача членов структур функциям. Передача целых структур функциям.
- •Указатели на структуры. Средство typedef.
- •Понятия объединения и перечисления. Битовые поля.
- •Основы файловой системы. Стандартные потоки. Указатель файла. Открытие файла. Закрытие файла.
2. Основные типы данных. Классификация их типов. Модификация базовых типов.
Типом данных называется набор предопределеннфх значений и набор операций, которые можно выполнить
над переменной данного типа. Переменные можно инициализировать ы месте их описания.
Пример:
int heigh=71;
float k=26034.12;
Переменная любого типа может быть объявлена как немодифицируемая. Это достигается добавлением
ключевого слова const к спецификатору-типа. Объекты с типом const представляют собой данные,
используемые только для чтения, т.е. этой переменной не может быть присвоено новое значение.
Отметим, что если после слова const отсутствует спецификатор-типа, то подразумевается
спецификатор типа int. Если ключевое слово const стоит перед объявлением составных типов (массив,
структура, смесь, перечисление), то это приводит к тому, что каждый элемент также должен являться
немодифицируемым, т.е. значение ему может быть присвоено только один раз.
Примеры:
const double A=2.128E-2;
const B=286; // подразумевается const int B=286
Целый тип данных
Для определения данных целого типа используются различные ключевые слова, которые определяют
диапазон значений и размер области памяти, выделяемой под переменные (таблица 5).
Таблица 5
Тип |
Размер памяти в байтах |
Диапазон значений |
char |
1 |
от -128 до 127 |
int |
Для IBM XT,AT,SX,DX 2 |
|
short |
2 |
от -32768 до 32767 |
long |
4 |
от -2 147 483 648 до 2 147 483 647 |
unsigned shar |
1 |
oт 0 до 255 |
unsigned int |
Для IBM XT,AT,SX,DX 2 |
|
unsigned short |
2 |
от 0 до 65535 |
unsigned long |
4 |
от 0 до 4 294 967 295 |
Ключевые слова signed и unsigned необязательны. Они указывают, как интерпретируется нулевой бит
объявляемой переменной, т.е., если указано ключевое слово unsigned, то нулевой бит
интерпретируется как часть числа, в противном случае нулевой бит интерпретируется как знаковый.
В случае отсутствия ключевого слова unsigned целая переменная считается знаковой. В том случае,
если спецификатор типа состоит из ключевого типа signed или unsigned и далее следует
идентификатор переменной, то она будет рассматриваться как переменная типа int. Например:
unsigned int n;
unsigned int b;
int c; //подразумевается signed int c
unsigned d; //подразумевается unsigned int d
signed f; //подразумевается signed int f
Типы данных с плавающей точкой
Для переменных, представляющих число с плавающей точкой, используются следующие модификаторы-
типа:
Таблица 6
Тип |
Размер памяти в байтах |
Диапазон значений |
float |
4 |
от 3,4*10 -38 до 3,4*10 + 38 |
double |
8 |
от 1,7 *10 -3 0 8 до 3,4*10 + 3 0 8 |
long double |
10 |
от 3,4*10 - 4932 до 1,1 *10 +4932 |
Пример:
float f, a, b;
double x,y;
Символы
Символьный тип в языке С относится к целым типам данных. Отметим, что модификатор-типа char
используется для представления символа (из массива представление символов) или для объявления
строковых литералов.
Таблица 7
Тип |
Размер памяти в байтах |
Диапазон значений |
char |
1 |
от -128 до 127 |
signed char |
1 |
от -128 до 127 |
unsigned char |
1 |
от 0 до 255 |
Отметим также, что восьмеричные и шестнадцатеричные константы также могут иметь модификатор
unsigned.
Например:
0xA8C (int signed );
01786l (long signed );
0xF7u (int unsigned );
Тип void
Используется для определения функций, которые не возвращают значения для указания пустого списка
аргумента функций, как базовый тип для указателей и в операуии приведения типов.
Преобразование типов
Приведение типов – изменение (преобразование) типа объекта. Для выполнения преобразования
необходимо перед объектом записать в скобках нужный тип:
(имя-типа) операнд;
Приведение типов используется для преобразования объектов одного скалярного типа в другой скалярный тип. Однако выражению с приведением типа не может быть присвоено другое значение.
Пример:
int i;
double x;
x=(double)i+2.0;
В этом примере целая переменная i с помощью операции приведения типов приводится к плавающему
типу, а затем уже участвует в вычислении выражений.
К символам модификации текущего типа относят:
Символ * - означает декларацию указателя на объект исходного типа
Символ [] – декларация массивов объектов
Символ () – декларация функции