- •Оглавление
- •1.2. Свойства языков программирования
- •1.3. Основные парадигмы программирования Процедурное программирование
- •Модульное программирование
- •Абстракция данных
- •Объектно-ориентированное программирование
- •Непечатные символы
- •Тема 2 Типы данных
- •2.1. Понятие переменной и объявление переменных
- •Объявление переменных
- •Встроенные типы данных
- •Размер памяти, выделяемой под встроенные типы данных
- •2.2. Константы и перечисления Константные переменные
- •Перечисления
- •2.3. Операции и выражения
- •Мультипликативные операции
- •Операции сравнения
- •Побитовые логические операции
- •Побитовые операции
- •Комментарии
- •Оператор while(пока)
- •Оператор do/while(выполнять/пока)
- •Оператор for(цикл)
- •Оператор множественного выбора switch
- •Операторы breakиcontinue
- •Тема 4 Массивы
- •4.1.Определение, объявление и инициализация массивов
- •Объявления и инициализация массивов в программе
- •4.2. Сортировка массивов Пузырьковая сортировка
- •Сортировка вставками
- •4.3. Поиск в массивах Линейный поиск
- •Двоичный поиск
- •4.4. Многомерные массивы
- •Тема 5 Указатели Объявления и инициализация переменных указателей
- •5.1. Операции над указателями
- •5.2. Выражения и арифметические действия с указателями
- •5.3. Взаимосвязи между указателями и массивами
- •5.4. Массивы указателей
- •5.5. Динамическое выделение памяти под массивы
- •Тема 6 Функции
- •6.2. Определения функций
- •Генерация случайных чисел
- •6.3. Классы памяти и область действия Классы памяти
- •Область действия
- •6.4. Рекурсия
- •6.5. Ссылки и ссылочные параметры
- •Вызов функций по ссылке с аргументами указателями
- •6.6. Использование спецификатораconstс указателями
- •6.7. Перегрузка функций
- •Аргументы по умолчанию
- •6.8. Передача массивов в функции
- •6.9. Указатель на функцию
- •6.10. Командная строка аргументов
- •6.11 Неопределенное количество аргументов
- •Тема 7 Введение в обработку строк
- •7.1. Работа со строками в с
- •Понятие символов и строк в с
- •Функции для работы со строками
- •Определение длины строки
- •Сложение двух строк (конкатенация)
- •Добавление к исходной строке указанного количества символов.
- •Копирование строки в другую строку
- •Сравнение строк
- •Получение строки от пользователя
- •Тема 8 Работа с файлами
- •Открытие файла
- •Чтение из файла символа или строки символов
- •Запись символа или строки символов в файл
- •Смещение внутри файла
- •Значения параметра fromwhereфункцииfseek
- •Закрытие файла
- •Тема 9 Компоновка программ и препроцессор
- •9.1. Компоновка программ
- •Проблема использования общих функций и имен
- •Использование включаемых файлов
- •9.2. Препроцессор
- •Определение макросов
- •Условная компиляция
- •Дополнительные директивы препроцессора
- •Тема 10 Структуры
- •10.1. Определение структур и доступ к элементам
- •Доступ к элементам структур
- •Использование структур
- •10.2. Битовые поля
- •10.3. Объединения
- •10.4. Построение связных списков на основе структур с самоадресацией
- •Создание простого связного списка
- •Очереди
- •Деревья
- •Список рекомендуемой литературы
Размер памяти, выделяемой под встроенные типы данных
Тип данных |
Байт |
Диапазон |
long double |
? |
3.4e-4932..3.4e+4932 |
double |
8 |
1.7e-308..1.7e+308 |
float |
4 |
3.4e-38..3.4e+38 |
unsigned long long |
8 |
0..18 446 744 073 709 551 615 |
long long int |
8 |
-9 223 372 036 854 775 808 .. 9 223 372 036 854 775 807 |
unsigned long int |
4 |
0..4 294 967 295 |
long int |
4 |
-2 147 483 648 .. 2 147 483 647 |
int |
? |
? |
unsigned short int |
2 |
0..65535 |
short int |
2 |
-32 768 .. 32 767 |
unsigned char |
1 |
0..255 |
char |
1 |
-128 .. 127 |
Описание- это оператор, который вводит имя в программу. В описании указывается тип имени. Тип, в свою очередь, определяет, как правильно использовать имя или выражение.
Типы данных [2] в порядке следования от высших типов к низшим с количеством занимаемых типом байт (в 32-разрядных системах) приведены в табл. 2.
Модификатор unsignedозначает, что в переменной, объявленной с таким ключевым словом, не могут храниться отрицательные числа.
Тип intявляется машинно-зависимым. Это значит, что на разных аппаратных платформах он занимает или 2, или 4 байта. На 32-разрядных машинах переменные типаintчаще всего занимают 4 байта. В дальнейшем при написании программ будем подразумевать, что под типintвыделяется именно 4 байта.
Целые числа хранятся поразрядно в двоичном виде, а вот числа с плавающей точкой имеют особый формат [4].
Число с плавающей точкой хранится в экспоненциальном представлении, например: 5.98Е24,9.11е-31и т.д. Здесь9.11– это мантисса, а-31– экспонента. Если это же число записать в привычном для нас виде, то нужно мантиссу умножить на10в степени экспоненты:
9.11е-31 = 0.000000000000000000000000000000911
В типе floatдля хранения мантиссы выделено24бита, а минимальное количество значащих цифр равно6. Минимальное значение экспоненты равно-38, а максимальное –38. В результате такого хранения в4байта можно записать более «длинные» числа, чем в типlong.
Тип doubleотличается от типаfloatбольшим количеством хранимых значимых цифр -15. И экспонента имеет другой диапазон – от-308до308.
2.2. Константы и перечисления Константные переменные
Если переменная объявлена с ключевым словом const, значит, она не должна меняться. После определения константной переменной уже нельзя изменить ее значение или передать ее в качестве аргумента функции, которая не гарантирует ее неизменности. Рассмотрим простой пример с константной целой переменной (рис. 2.1.).
const int j = 17; // Целая константа
j = 29; // Нельзя, значение не должно меняться
const int i; // Нельзя, отсутствует начальное значение
Рис. 2.1. Работа с константой
Третья строка неверна, поскольку в ней компилятору предлагается определить случайную переменную, которую никогда не удастся изменить, - довольно странный генератор случайных целых констант.
Целое число может быть непосредственно записано в программе в виде константы. Запись чисел соответствует общепринятой нотации. Примеры целых констант: 0, 125, -37. По умолчанию целые константы принадлежат к типуint. Если необходимо указать, что целое число — это константа типаlong, можно добавить символLилиlпосле числа. Если константа беззнаковая, т.е. относится к типуunsigned longилиunsigned int, после числа записывается символUилиu. Например:
34U, 700034L, 7654ul.
Кроме стандартной десятичной записи, числа можно записывать в восьмеричной или шестнадцатеричной системе счисления. Признаком восьмеричной системы счисления является цифра 0в начале числа. Признаком шестнадцатеричной —0xили0Xперед числом. Для шестнадцатеричных цифр используются латинские буквы отAдоF(неважно, большие или маленькие).
Таким образом, фрагмент программы
const int x = 240;
const int y = 0360;
const int z = 0xF0;
определяет три целые константы x,yиzс одинаковыми значениями