
- •Алфавит языка Си
- •Лексемы
- •Идентификаторы и ключевые слова
- •Знаки операций
- •Литералы (константы)
- •Комментарии
- •Общая структура программы на языке Си.
- •2. Переменные и константы. Типы данных
- •2.1. Основные типы данных
- •2.2. Декларация (объявление) объектов
- •2.3. Константы в программах
- •2.4. Целочисленные константы
- •2.5. Константы вещественного типа
- •2.6. Символьные константы
- •2.7. Строковые константы
- •3. Обзор операций
- •3.1. Операции, выражения
- •3.2. Арифметические операции
- •3.3. Операции сравнения
- •3.4. Логические операции
- •4. Операции (продолжение).
- •4.1. Операция присваивания
- •Примеры недопустимых выражений:
- •4.2. Сокращенная запись операции присваивания
- •4.3. Преобразование типов операндов бинарных операций
- •4.4. Преобразование типов при присваивании.
- •4.5. Операция явного приведения типа
- •4.6. Операция «,» (запятая)
- •5. Стандартная библиотека языка Си
- •5.1. Стандартные математические функции
- •5.2. Потоковый ввод-вывод
- •5.3. Консольные функции вывода данных на экран
- •5.4. Консольные функции ввода информации
- •5.5. Ввод-вывод в оконных приложениях.
- •Советы по программированию
2. Переменные и константы. Типы данных
Для программиста на языке Си память компьютера представляется как набор ячеек, каждая из которых называется переменной,иликонстантой, в зависимости от того, меняется ее значение в процессе работы или нет. Каждая переменная имеет имя (идентификатор,ID). Константа может иметь или не иметь имени.
Род информации, которую способна хранить ячейка, определяется ее типом.
2.1. Основные типы данных
Данные в языке Си разделяются на две категории: простые (скалярные), будем их называть базовыми, и сложные (составные) типы данных.
Тип данных определяет:
внутреннее представление данных в оперативной памяти;
совокупность значений (диапазон), которые могут принимать данные этого типа;
набор операций, которые допустимы над такими данными.
Основные типы базовых данных: целый – int, вещественный с одинарной точностью – float и символьный – char.
В свою очередь, данные целого типа могут быть короткими – short, а также длинными – long . Кроме того, при любой длине данные целых и символьного типов могут быть знаковыми - signed либо беззнаковыми – unsigned (по умолчанию они считаются знаковыми, поэтому слово signed необязательно и обычно опускается). Вещественные же данные могут иметь удвоенную точность – double.
Сложные типы данных – массивы, структуры – struct, объединения или смеси – union.
Данные целых и вещественных типов находятся в определенных диапазонах, т.к. занимают разный объем оперативной памяти. Вещественные типы при этом обладают еще конечной точностью хранения данных, т.е. верно хранят лишь первые несколько цифр числа; для хранения остальных (чье количество бывает даже бесконечным - например, у числа π , или у числа ⅓ ) не хватает места. В Табл. 1. приведены свойства различных типов для системы программирования C++ Builder. В других системах программирования, поддерживающих язык Си, может отличаться размер того или иного конкретного типа, например int, и соответственно будет отличаться его допустимый диапазон значений (например, тип long int может превосходить по размеру тип int). Однако последовательность возрастания размеров и точности для каждой группы типов всегда одинакова:
char ≤ short int ≤ int ≤ long int ≤ long long int
float ≤ double ≤ long double
Таблица 1.
Тип данных |
Размер (байт) |
Диапазон значений |
Точность, десятичных знаков |
сhar |
1 |
-128 … 127 |
|
unsigned сhar |
1 |
0 … 255 |
|
short int |
2 |
-215… 215–1 (-32768…32767) |
|
int |
4 |
-231…231–1 (-2147483648…2147483647) |
|
long int |
4 |
-231…231–1 (-2147483648…2147483647) |
|
long long int |
8 |
–263...
263–1 (примерно
|
|
unsigned short int |
2 |
0…216–1 (0…65535) |
|
unsigned int |
4 |
0…232–1 (0…4294967295) |
|
unsigned long int |
4 |
0…232–1 (0…4294967295) |
|
float |
4 |
±3,14*10-38…±3,14*1038 |
7-8 |
double |
8 |
±1,7 *10-308… ±1,7 *10308 |
15-16 |
long double |
10 |
± 1,1 * 10-4932… ± 1,1 * 104932 |
19-20 |
Заметим, что для целочисленных типов данных, чье название содержит слово int и еще какое-либо слово перед ним, слово int можно не писать, и обычно оно опускается (в Табл.1 необязательное int указано мелким шрифтом).