- •Укороченный язык си
- •Порядок обработки информации машиной с целью получения программы
- •Элементы языка си
- •История языка
- •Понятие языка программирования
- •Основные понятия языка программирования
- •Основные символы языка
- •Ключевые слова
- •Использование комментариев в тексте программы
- •Описательные и выполняемые операторы языка
- •Понятие идентификатора
- •Переменные и базовые типы данных
- •Константы
- •Указатели
- •Типы структурированных переменных
- •Массивы
- •Структуры
- •Структура программ
- •Составные части программы
- •Функции в языке си
- •Понятие модуля
- •Арифметические выражения и присваивания
- •Арифметические выражения
- •Приоритет арифметических операций
- •Преобразования типов при вычислении выражений
- •Странные операторы присваивания
- •Сокращенная запись арифметических выражений
- •Логические выражения
- •Операция sizeof
- •Программирование вычислительных структур
- •Исполняемые операторы
- •Структура альтернатива
- •Структура повторение
-
Переменные и базовые типы данных
Для обработки данных их необходимо хранить в памяти. При этом к этим данным надо как-то обращаться. Обычно люди обращаются друг к другу по имени, такой же способ используется в программировании: каждой ячейке памяти (или группе ячеек) дается свое собственное имя. Используя это имя можно прочитать информацию из ячейки и записать туда новую информацию.
Переменная – это ячейка в памяти компьютера, которая имеет имя и хранит некоторое значение. Значение переменной может меняться во время выполнения программы. При записи в ячейку нового значения старое стирается.
С точки зрения компьютера все данные в памяти – это числа (более точно – наборы нулей и единиц). Тем не менее, вы (и компьютер) знаете, что с целыми и дробными числами работают по-разному. Поэтому в каждом языке программирования есть разные типы данных, для обработки которых используются разные методы.
В языке СИ существует несколько типов данных, которые можно назвать базовыми:
• символы (тип char – от английского character – символ);
• целые переменные – тип int (от английского integer – целый);
• вещественные переменные, которые могут иметь дробную часть (тип float – от английского floating point – плавающая точка);
• вещественные переменные с плавающей точкой двойной длины (точности) от английского double – двойной;
• пустой, не имеющий значения void.
Все переменные, которые вы будете использовать в программе, необходимо объявлять до их использования – сказать компьютеру, чтобы он выделил на них ячейку памяти нужного размера и присвоил ей имя. При объявлении переменной вы указываете тип данных. Переменная будет хранить данные указанного вами типа.
На основе базовых типов вы можете создавать свои типы данных. Создать свой тип данных можно с помощью ключевого слова typedef. Об этом поговорим позже.
Ниже приведена таблица типов данных и объем памяти занимаемый каждым типом данных.
Тип |
Размер в байтах (битах) |
Интервал изменения |
|
char |
1 (8) |
от -128 |
до 127 |
unsigned char |
1 (8) |
от 0 |
до 255 |
signed char |
1 (8) |
от -128 |
до 127 |
int |
2 (16) |
от -32768 |
до 32767 |
unsigned int |
2 (16) |
от 0 |
до 65535 |
signed int |
2 (16) |
от -32768 |
до 32767 |
short int |
2 (16) |
от -32768 |
до 32767 |
unsigned short int |
2 (16) |
от 0 |
до 65535 |
signed short int |
2 (16) |
от -32768 |
до 32767 |
long int |
4 (32) |
от -2147483648 |
до 2147483647 |
signed long int |
4 (32) |
от -2147483648 |
до 2147483647 |
unsigned long int |
4 (32) |
от 0 |
до 4294967295 |
float |
4 (32) |
от 3.4E-38 |
до 3.4E+38 |
double |
8 (64) |
от 1.7E-308 |
до 1.7E+308 |
long double |
10 (80) |
от 3.4E-4932 |
до 3.4E+4932 |
Напомню, что:
1 байт - 8 бит (разрядов)
2 байта - 16 бит - слово
4 байта - 32 бита - двойное слово.
В стандарте языка Си нет логического типа, величины которого могут принимать только значения ИСТИНА и ЛОЖЬ. Для этих целей используется любой целочисленный тип данных, при этом 0 соответствует значению ЛОЖЬ, а любое ненулевое целое число, например, -8, 2) – значению ИСТИНА. Однако в большинстве последних модификациях языка Си применяется специализированный тип данных bool, переменные этого типа могут принимать всего два значения true и false.
Переменные обычно объявляются в начале программы. Для объявления надо написать название типа переменных (int, float или char), а затем через запятую имена всех объявляемых переменных. При желании можно сразу записать в новую ячейку нужное число, как показано в примерах ниже. Если переменной не присваивается никакого значения, то в ней находится «мусор», то есть то, что было там раньше.
Примеры.
unsigned long int
a; // выделить память под целую переменную a
long double
b, c; // две вещественных переменных b и c
int Tu104, Il86=23, Yak42; // три целых переменных, в
// Il86 сразу записывается число 23
float x=4.56, y, z; // три вещественных переменных, в
// в x сразу записывается число 4.56
char c, c2='A', m; // три символьных переменных, в c2
// сразу записывается символ 'A'