- •1) Базовые элементы языка с. Алфавит и словарь языка (в1б1, в3б3)
- •2) Основные типы данных. Классификация их типов. Модификация базовых типов. (в1б2, в3б17)
- •3) Константы (в1б3, в3б2)
- •4) Переменные (в1б4, в3б16)
- •5) Структура с-программы. Понятие локальных и глобальных переменных. Функция main(). Директивы препроцессора (# include и #define). Комментарии. (в1б5, в3б1)
- •6) Операции языка с. Арифметические, логические операции. Поразрядные операции. (в1б6, в3б15)
- •7. Операции языка с. Операция присваивания и отношения. Операция определения размера. Оператор последовательного вычисления. (в1б7, в2б30)
- •8. Операции языка с. Условная операция. Операция (), операция []. (в1б8, в3б14)
- •9) Приоритет операций и порядок вычислений (в1б9, в2б29)
- •10) Основные сведения о вводе-выводе. (в1б10, в3б13)
- •11) Ввод-вывод символов (в1б11, в2б28)
- •12) Форматированный ввод-вывод. Модификаторы формата. Спецификаторы преобразования. Подавление ввода. (в3б12, в1б12)
- •13) Операторы языка с. Условные операторы (if, switch). (в1б13, в2б27)
- •14) Операторы цикла (while, for, do while )(в1б14, в3б11)
- •15) Операторы безусловного перехода ( break, continue, go to, return) (в1б15, в2б26)
- •16) Одномерные массивы. (в1б16, в3б10)
- •17) Строковый литерал. Чтение и запись строк. (в1б17, в2б25)
- •18)Двухмерные массивы. Массивы строк (в1б18, в3б9)
- •19) Инициализация массива. (в1б19, в2б24)
- •20) Способы доступа к элементом массива. (в1б20, в3б8)
- •22) Указательные переменные. Операции получения адреса (&) и раскрытие ссылка (*) (в1б22, в3б7)
- •23) Указательные выражения. Адресная арифметика. (в1б23, в2б22)
- •24) Связь массивов и указателей (в1б24,в3б6)
- •25) Функции динамического распределения памяти (в1б25, в2б21)
- •26) Динамическое выделение памяти для массивов. (в1б26, в3б5)
- •27) Функции. Определения функций. Оператор return.( в1б27, в3б20)
- •28) Функции. Прототипы функции. (в1б28, в3б4)
- •29) Функции. Вызов функций: вызов по значению и по ссылке. (в1б29, в2б19)
- •30) Передача массива в функцию. (в1б30, в3б27)
- •31) Классы памяти. Область видимости. (в2б1, в3б28)
- •32) Аргумент функции main(): argv и argc (в2б2, в3б26)
- •33) Рекурсия. (в2б3, в3б29)
- •34) Вызов библиотечных функций(в2б4, в3б25)
- •35) Директива препроцессора #define: создание макрофункций с помощью директивы #define (в2б5, в3б30)
- •36) Директивы условной компиляции #if, #else, #elif, #endif, #ifdef, #ifndef (в2б6, в3б24)
- •37) Понятие структуры. Доступ к членом структуры (в2б7)
- •38) Присваивание структур (в2б8, в3б23)
- •39) Массивы структуры(в2б9)
- •40) Передача членов структур функциям. Передача целых структур функциям. (в2б10, в3б22)
- •41) Указатели на структуры. Средство typedef (в2б11)
- •42) Понятие объединение и перечисления. Битовые поля. (в2б12,в3б21)
- •44) Методы поиска: последовательный и двоичный поиск. (в2б14, в3б20)
- •45) Основы файловой системы. Стандартные потоки. Указатель файла. Открытые файлы. Закрытые файлы. (в2б15)
- •46) Форматированный ввод-вывод в файл (в2б16, в2б17, в3б19)
- •48) Понятие очереди, стеков, связанных списков и деревьев. (в2б12, в3б18)
2) Основные типы данных. Классификация их типов. Модификация базовых типов. (в1б2, в3б17)
Типом данных называется набор предопределенных значений и набор операций, которые можно выполнить над переменной данного типа. Переменные можно инициализировать в месте их описания.
Пример:
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
1.Целый тип данных
Для определения данных целого типа используются различные ключевые слова, которые определяют диапазон значений и размер области памяти, выделяемой под переменные.
Тип |
Размер памяти в байтах |
Диапазон значений |
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
2.Типы данных с плавающей точкой
Для переменных, представляющих число с плавающей точкой, используются следующие модификаторы-типа:
Тип |
Размер памяти в байтах |
Диапазон значений |
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 |
3.Символы
Символьный тип в языке С относится к целым типам данных. Отметим, что модификатор-типа char используется для представления символа (из массива представление символов) или для объявления строковых литералов.
Тип |
Размер памяти в байтах |
Диапазон значений |
char |
1 |
от -128 до 127 |
signed char |
1 |
от -128 до 127 |
unsigned char |
1 |
от 0 до 255 |
Отметим также, что восьмеричные и шестнадцатеричные константы также могут иметь модификатор unsigned. Это достигается указанием префикса u или U после константы, константа без этого префикса считается знаковой.
Например:
0xA8C (int signed );
01786l (long signed );
0xF7u (int unsigned );
4.Тип void
Используется для определения функций, которые не возвращают значения для указания пустого списка аргумента функций, как базовый тип для указателей и в операции приведения типов.
5.Преобразование типов
Приведение типов – изменение (преобразование) типа объекта. Для выполнения преобразования необходимо перед объектом записать в скобках нужный тип:
(имя-типа) операнд;
Приведение типов используется для преобразования объектов одного скалярного типа в другой скалярный тип. Однако выражению с приведением типа не может быть присвоено другое значение.
Пример:
int i;
double x;
x=(double)i+2.0;
В этом примере целая переменная i с помощью операции приведения типов приводится к плавающему типу, а затем уже участвует в вычислении выражений.