Лексические основы языка C ++. Алфавит и лексемы языка C++. Операторы C++. Массивы и указатели, страница 2

Обрабатываемые в программе данные можно разделить на переменные и константы. Перед использованием переменные и константы должны быть объявлены с помощью оператора объявления вида

[<Спецификатор класса памяти>][модификатор const] <спецификатор

типа> <идентификатор> [=<начальное значение>|( начальное

значение)][, <идентификатор> [=<начальное значение>|( начальное

значение)]] . . .;

Например:

            int a  = 5, y, z(10);

     const float g = 9.81, c = 0.577216; 

            Ключевое слово const указывает, что записанные справа идентификаторы являются символическими константами (константными переменными). При этом значение константы задается обязательно и в программе изменяться не может. Кроме константных переменных, константы могут задаваться в виде литеральных (самоопределенных) констант (см 1.5).

            В таблице 1.2 приведены имена основных скалярных базовых типов, диапазоны допустимых значений и размер памяти, отводимой под элементы хранения переменных и констант данных типов. Для явного задания диапазона можно использовать модификаторы signed, unsigned.

Таблица 1.2 Характеристики основных типов данных С++

Имя типа

Размер в байтах

(16/32 разрядная архитектура)

Диапазон значений

[signed] char

1 / 1

-128 .. 127

unsigned char

1 / 1

0..255

[signed] short

2 / 2

-32768..32767

unsigned short

2 / 4

0..65535

[signed] int

2 / 4

-32768..32767

unsigned int

2 / 4

0..65535

[signed] long

4 / 4

-2147483648..2147483647

unsigned long

4 / 4

0..4294967295

float

4 / 4

3.4 Е–38..3.4 Е+38

double

8 / 8

1.7 Е–308..1.7 Е+308

long double

10 / 10

3.4 Е–4932..3.4 Е+4932

1.5 Определение констант

            По способу определения константы можно разделить на символические и литеральные  (самоопределенные).

            Литеральная константа представляет собой константу, тип и значение которой определяются ее внешним видом. Различают следующие виды литеральных констант: числовые, символьные, строковые.

            Числовые константы:

·  вещественные типа double: 3.14, 0.314E1, -2.5

·  целые:

·  десятичные типа int: 0, 278, -579 – используются десятичные цифры;

·  восьмеричные: 00, 077777 – используются восьмеричные цифры, запись числа начинается с нуля;

·  шестнадцатиричные: 0х0000, 0х7FFF – используются шестнадцатиричные цифры, запись числа начинается с 0х.

            Тип числовой константы можно явно задать с помощью суффиксов

L, l – long int, например, 35L;

uh, uh, UH, hu, Hu, HU  - unsigned short , например, 27 UH;

f, F – float, например, 1.5 F;

l,L – long double, например, 1E–10L.

Символьные константы:

·  клавиатурные: ‘1’, ‘t’, ‘Y’ – клавиатурный символ задается в апострофах;

·  кодовые – для задания некоторых управляющих и разделительных символов:

‘\n’, ‘\t’, ‘\\’, ‘\’’, ‘\”’

·  кодовые числовые – для задания любых ASCII-кодов символов, имеют вид:

‘\xHH’, ‘\XHH’, ‘\0OOO’, где H,O шестнадцатиричная и восьмеричная цифры соответственно.

Строковые константы – последовательности символов, ограниченные двойными кавычками.

Для задания строковой константы требуется n+1 байтов, где n – число символов между ограничителями строковой константы. Дополнительный байт последний и требуется для хранения кода 000, который записывается автоматически.

Символические константы базовых типов объявляются так же, как и переменные соответствующих типов, но с указанием модификатора const. Например,

const int       x = 5; y = 10;

const double    z = 1E-5;

const float PI = 3.141593;

const  char      Smb = ‘t’;

const char SC[] = “String constant”;

Символические константы можно задавать также средствами препроцессора.