Программа оперирует с различными данными, которые могут быть простыми и структурированными. Простые данные - это целые и вещественные числа, текст и указатели (содержат адреса памяти, по которым размещаются данные). В языке различают понятия описание переменной и ее определение (объявление). Описание устанавливает свойства объекта: его тип, размер и т.д. Определение наряду с этим вызывает выделение памяти. Каждый тип данных определяется ключевыми словами, которые приведены в табл.1.1:
Таблица 1.1
Название типа
| Тип зна-чения пе-ремен-ной
| Диапазон значений
| Необхо-димая память,
в битах
| Примечания
|
|
|
|
|
|
Int
| Целый
| -32768 ...32767
|
| Задает значения, к которым относятся все целые числа, например –6, 0, 28 и т.д.
|
Окончание табл.1.1 .
|
|
|
|
|
short
| Короткий и целый
| -32768 ...32767
|
| Объекты short не могут быть больше, чем int. В Borland C int и short равной длины
|
long
| Длинный и целый
| 214748364…2147483647
|
| Используется, когда диапазон значений выходит за пределы диапазона типа int
|
char
| Сим-вольный
| Символы кодовой таблицы ASCII (0...255)
|
| Задает значения, которые представляют различные символы, например, w, у, ф, 4, !, ., * и т. д. Этот тип часто используется как наименьшее беззнаковое целое значение
|
unsigned
| Беззнако-вый
|
|
| Модификатор типов char, short, int, long, определяющий их беззнаковыми.1)
|
float
| Вещест-венный
| ±3.4е-38… ±3.4е+38
|
| Определяет вещественные числа, дробная часть которых отделяется точкой (например, -5.27, 0.0, 31.69 и т.д.). Вещественные числа могут записываться в экспоненциальной форме. Например: -1.58е+2 (что равно -1,58 * 102), 3.61е-4 (что равно 3,61 *10-4).
|
double
| Вещест-венный, двойная точность
| ±1.7е-308... ±1.7е+308
|
| Определяет вещественные переменные двойной точности, занимающие в два раза больше памяти, чем переменная типа float
|
1)Типы unsigned (например unsigned char) могут принимать большие по абсолютной величине положительные значения, чем переменные знаковых типов, за счет использования знакового бита для представления числа. Например, переменная типа unsigned int может принимать значения от 0 до 65535 (просто int при том же размере в битах от –32768 до 32767). По умолчанию unsigned a определяется как unsigned int a.
Примеры объявления данных:
int а, b;
unsigned i, j;
float k;
Здесь объявлены переменные: целые а и b , беззнаковые целые i и j , вещественное число одинарной точности k.
2.Ввод – вывод информации
В языке Си имеется ряд функций, предназначенных для реализаций операций ввода-вывода. Наиболее используемая – функция форматированного вывода:
printf(“управляющая строка вывода“, список_переменных_через_запятую);
Формат printf включает в себя как текстовые сообщения, так и управляющие символы. Управляющим символам предшествует символ %, за которым могут следовать буквы, определяющие прототип вывода значений переменных. Выбор прототипа зависит от типа переменной, значение которой будет выводиться вместо прототипа. Основные прототипы переменных перечислены в табл.2.1.
Таблица 2.1
Название типа
| Формат
| Примечание
|
char
| %c
|
|
char[n]
| %s
| (Строка - массив символов), где n – количество символов в строке.
|
int
| %d
|
|
long
| %ld
|
|
float
| %f
|
|
double
| %lf
|
|
Количество форматов в маске ввода должно соответствовать количеству переменных в списке переменных после кавычек. Переменные разделяются между собой запятыми. В формат могут входить также специальные символы, приведенные в табл.2.2.
Таблица 2.2.
Символ
| Назначение
|
\n
| Новая строка
|
\t
| Табуляция
|
\\
| Вывод символа \
|
\”
| Вывод символа “
|
Символы, не являющиеся символами формата или спецсимволами, непосредственно выводятся функцией printf.
Пример использования оператора printf для вывода значений переменных a,b:
int a,b;// объявление переменных a,b
printf("a = %d , b = %d;\n", a, b); // вывод значений переменных a,b
//в форме a=5, b=10;
Оператор ввода предназначен для ввода значений переменных с клавиатуры. Формат оператора scanf соответствует формату оператора printf. Отличие заключается в том, что перед значениями переменных всех типов, за исключением массивов (строк символов), ставится амперсант – символ “&.”. Он означает, что в распоряжение функции предоставляется не содержимое, а адрес переменной, что будет рассмотрено в разделе изучения указателей.
scanf(“формат“,X1,…Xn);
Пример использования оператора scanf для ввода значений переменных a,b целого типа:
int a,b;// объявление переменных a,b
scanf ( "%d%d", &a, &b );// ввод значений переменных a,b клавиатуры
printf("a = %d b = %d\n", a, b); // вывод значений переменных a,b