Ключевые слова
bool |
break |
case |
char |
const |
continue |
do |
double |
else |
false |
float |
for |
goto |
if |
int |
long |
namespase |
return |
short |
signed |
sizeof |
struct |
switch |
true |
typedef |
unsigned |
using |
void |
while |
|
|
|
Дополнительные к этому списку служебные слова приведены в описаниях конкретных реализаций С++.
3. Переменные
Переменные используются для записи значений, изменяющихся в программе. Каждая переменная имеет имя (идентификатор), тип, размер и значение.
Имя переменной является её названием.
Тип определяет способ внутреннего для компьютера представления объекта, а также действия, которые разрешается выполнять над ним.
Размер непосредственно связан с объявлением типа, определяет объём памяти и, следовательно, максимальную величину или точность задания числа.
Значение показывает конкретное содержимое ячейки памяти.
В тексте любой программы каждая переменная должна быть объявлена. Описание переменной предшествует её первому использованию. Тип переменной изменить нельзя, можно изменить её значение. Действия в программе производятся с переменными, имеющими конкретные значения.
3.1. Типы переменных
Рассмотрим набор базовых (стандартных), встроенных в язык, типов переменных (данных). В С++ имеется четыре стандартных арифметических (числовых) типа данных. Из них два целочисленных ‒ char, int, и два плавающих (вещественных) ‒ float и double. Существуют ещё модификации этих типов, описываемые с помощью служебных слов ‒ модификаторов: размера ‒ short (короткий) и long (длинный) и знака ‒ signed (знаковый) и unsigned (беззнаковый). Знаковые модификаторы применяются только к целым типам. В С++ также добавлен логический тип bool.
В табл. 2 перечислены типы данных с указанием объёма занимаемой памяти и диапазоном допустимых значений.
Таблица 2
Базовые типы данных
Тип |
Память |
Область значений |
char |
1 байт |
от -128 до 127 |
unsigned char |
1 байт |
от 0 до 255 |
int |
4 байта* |
|
short int |
2 байта |
от -32768 до 32767 |
long int |
4 байта* |
|
long long int |
8 байт |
от -9223372036854775808 до 9223372036854775807 |
unsigned int |
4 байта* |
|
unsigned short int |
2 байта |
от 0 до 65535 |
unsigned long int |
4 байта* |
|
float |
4 байта |
от ~ 1.5e-38 до ~ 3.4e+38 |
double |
8 байтов |
от ~ 5e-324 до ~ 1.7e+308 |
long double |
8 байтов* |
|
bool |
1 байт |
true (код=1) или false (код=0) |
* Зависит от версии компилятора и разрядности компьютера
Обычно пользуются сокращённой записью типов и отбрасывают слово int там, где в табл. 2 оно дано курсивом.
Величины типа char могут рассматриваться в программе и как символы, и как целые числа, в зависимости от способа их использования. В случае интерпретации как символа числовое значение величины является ASCII-кодом.
Типы float и double применяются для хранения чисел с плавающей точкой. В математических расчётах предпочтительнее тип double, позволяющий производить вычисления с большей точностью.
Объявление переменных в программах имеет вид:
имя_типа список_переменных;
Одновременно с описанием возможно задание начальных значений переменных, что называется инициализацией:
тип имя_переменной=начальное_значение;
Например:
char symbol, t; // объявление
char f='&'; // объявление с инициализацией
int i,j,k,l; // объявление
double a=0.781, a1=18., a2=.77; // объявление с инициализацией
bool b1=true, b2=false; // объявление с инициализацией
Добавление к описанию переменной с инициализацией модификатора const (постоянный) означает, что данная величина должна оставаться неизменной в течение всего времени работы программы:
const float pi=3.14159; // именованная константа
const int imin=1, imax=100; // именованные константы
Именованную константу можно также ввести, используя препроцессорную директиву #define в следующем формате:
#define <имя константы> <значение константы>
Например:
#define imin 1
#define imax 100
На стадии препроцессорной обработки указанные имена заменяются на соответствующие значения. При этом идентификаторы imin и imax не требуют описания внутри программы. В конце директивы точка с запятой не ставится.
Размер памяти для переменной, типа данных можно определить с помощью оператора ‒ ключевого слова sizeof
int k=sizeof(double); // k=8
int l=sizeof(bool); // l=1
char dd='5';
int m=sizeof(dd); // m=1
Результатом операции является целое число, равное количеству байтов, которое занимает в памяти тип переменных, величина явно указанного типа или величина, полученная в результате вычисления выражения. Последняя определяется также по типу результата выражения.