Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Основы алгоритмизации и программирование.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
1.73 Mб
Скачать

2.4Типы данных Си. Константы. Переменные. Описания переменных.

Данные в Си могут быть одного из четырех базовых типов (они приведены в порядке возрастания старшинства):

  • символьные - char;

  • целые - int;

  • вещественные - float;

  • вещественные двойной точности - double.

Тип данного определяет:

  • сколько места в памяти ПК занимает это данное и в каком виде там хранится;

  • диапазон возможных значений;

  • операции, в которых это данное может использоваться.

Типы данных могут дополняться квалификаторами short и long (для типа int), а также unsigned и signed (для типов char и int). В частности, для работы с кириллицей в данных символьного типа необходимо использовать тип unsigned char.

Константа в Си - это область памяти, в которой хранится неизменяемое значение. Тип этого значения определяется написанием константы.

Тип константы

Пример

Область значений

Целая

-2, 48

-32768 - 32767

Вещественная

2.5, 2.5е3, 5.

От ~10-37 до ~1038

Символьная

'A', 's'

от -128 до +127

Строковая

"Привет"

Символ "е" в записи вещественной константы (экспоненциальный вид) означает: взять число слева от буквы "е" и умножить на 10 в степени, указанной справа от "е" (2.5е2 означает число 250).

Символьная константа - это число, представленное в виде буквы в апострофах. Значением константы является десятичный код буквы, например, значением константы 'A' является число 65.

Для написания символов, не имеющих графического представления, используются так называемые Esc-последовательности - комбинации из двух символов, первый из которых "\":

Символ

Назначение

'\n'

переход на следующую строку (Enter)

'\t'

табуляция (tab)

'\a'

звонок

'\0'

специальный символ с кодом 0 (NULL)

Строковая константа - это последовательность символов, окаймленная кавычками ", например, "Привет". Компилятор добавляет в конец строки символ '\0', чтобы по нему можно было в дальнейшем определить конец строки. Поэтому 'A' и "A" в Си отличаются: первое - это код символа А, а второе - последовательность двух символов: 'A' и '\0'.

Для удобства чтения и изменения текста программы константы можно именовать с помощью директивы препроцессора #define, помещаемой обычно в начало каждого программного модуля, например:

#define MAX_SIZE 120 - определение границ массива

#define ENTER 13 - код клавиши

При обработке программы препроцессор заменит строки с этими директивами пустыми строками (сохраняя нумерацию строк), а в тексте везде заменит имена таких констант на их значения.

Использование директивы #define удобно и в том случае, когда в программе приходится использовать одни и те же константы несколько раз. В этом случае при изменении их значений удобно сделать это только один раз в директиве #define, а не во многих местах программы.

Необходимо отметить, что препроцессор различает регистры символов в имени константы, и принято называть именованные константы заглавными буквами, в отличие от имен переменных, которые обычно пишут строчными буквами.

Переменная в Си - это поименованная область памяти, в которой хранится значение соответствующего ей типа. Это значение может изменяться в процессе выполнения программы. Переменные служат для хранения данных. Имена переменным (идентификаторы) дает программист по тем же правилам, что и именам функций.

Все переменные в программе должны быть описаны. Описание переменной имеет вид (синтаксис)

тип имя переменной[,имя переменной ...] , например

i nt i,n;

float a,b,c;

В синтаксисе "..." показывает, что содержимое скобок может повторяться несколько раз.

Описание указывает компилятору, сколько места отвести в памяти для этой переменной, а также какие действия с этой переменной можно производить, и ставится либо

  • перед описаниями всех функций в начале программы, тогда эти переменные будут доступны (т.е. их область видимости) во всех функциях программы с начала и до окончания работы программы (глобальное время жизни);

  • в начале блока, который начинается с "{" и заканчивается "}". В этом случае область видимости - только внутри блока, а время жизни - до выхода из блока (см. пример).

При описании переменной в нее можно поместить начальное значение (т.е. инициализировать):

int n=25;

char key='+',ch=ENTER; // именованная константа ENTER, равная 13.