Идентификаторы и служебные слова


Идентификатор (имя) – последовательность из букв латинского алфавита, десятичных цифр и символов подчеркивания, начинающаяся не с цифры:

Array, point1, a, point_2, Point_2, refer

Прописные и строчные буквы различаются. Допустимое число символов в имени зависит от версии компилятора. Компиляторы фирмы Borland различают не более 32-х первых символов любого идентификатора.

Ключевые (служебные) слова – это идентификаторы, зарезервированные в языке для специального использования. Ключевые слова Си++:

asm double New Switch
Auto else operator template
Break enum private this
Case extern protected throw
Catch float public try
Char for register typedef
Class friend return typeid
Const goto Short union
continue if signed unsigned
default inline sizeof virtual
Delete int Static void
Do long Struct volatile
      while

Для компиляторов фирмы Borland дополнительно введены ключевые слова:

Cdecl _export _loads _saveregs
_cs far Near _seg
_ds huge Pascal _ss
_es interrupt _regparam  

Там же введены как служебные слова регистровые переменные:

_AH _BH _CH _DH _SI _SP _SS
_AL _BL _CL _DL _DI _CS _ES
_AX _BX _CX _DX _BP _DS _FLAGS

Кроме того, идентификаторы, включающие два подряд символа подчёркивания ( __ ), резервируются для дальнейших реализаций Си++ и стандартных библиотек. Идентификаторы, начинающиеся с символа подчёркивания ( _ ), используются в реализациях языка Си. В связи с этим не рекомендуется выбирать идентификаторы, начинающиеся с одного или двух знаков подчёркивания.

 

Типы данных

Понятие типа данных является одним из ключевых в языке программирования Си++. Любая переменная, константа, объект, объявленный пользователем, неименованный объект, являющийся результатом выполнения какой-либо операции, всегда относится к какому-то типу. Зная тип объекта, всегда можно сказать сколько байт памяти отводится под объект, в каком диапазоне значений могут лежать значения объекта, какое множество операций определено над объектом данного типа, т.е. информация о типе объекта даёт нам представление о его свойствах.

Для объвления и описания типа объекта (переменной) используются следующие ключевые слова (имена типов):

сhar (символьный);

short (короткий целый);

int (целый);

long (длинный целый);

float (вещественный);

double (вещественный с удвоенной точностью);

void (отсутствие значения).

Перед именем символьного и целых типов может стоять ключевое слово signed (знаковый – значения объекта могут меняться от –N до N-1), или unsigned (беззнаковый -значения объекта могут меняться от 0 до 2*N-1), которое позволяет выбрать способ учёта знакового разряда. По умолчанию символьный и целые типы являются знаковыми, т.е., например, записи signed int и int являются полными синонимами, поэтому на практике ключевое слово signed почти не употребляется. Напротив, использование ключевого слова unsigned позволяет сделать символьный и целые типы беззнаковыми, поэтому оно используется довольно часто. В выражении unsigned int и signed int слово int можно опустить, компилятор будет подразумевать его по умолчанию.

У вещественных данных также есть тип, состоящий из двух ключевых слов, long double, точность которого выше чем у double.

Типы, введенные с помощью взятых по отдельности или в допустимом сочетании ключевых слов char, short, int, long, signed, unsigned, float, double, void, называются базовыми (фундаментальными, встроенными).

Таблица фундаментальных типов и определенных для них языком Си++ свойств приведена ниже. Тип данных enum относится к целому типу данных, но иногда его выделяют в отдельный так называемый перечисляемый тип.

Таблица 2.1

Таблица целых и вещественных типов данных

Тип данных Размер в байтах Диапазон значений Примечание – назначение типа
unsigned char 0…255 Небольшие целые числа и коды символов
сhar -128…127 Очень малые целые числа и ASCII коды
short -32768… 32767 Упорядоченные наборы целых чисел
unsigned int 0 …65535 Большие целые и счетчики циклов
int -32768… 32767 Небольшие целые, управление циклами.
int -32768… 32767 Небольшие целые, управление циклами
unsigned long 0…4294967295 Астрономические расстояния
long -2147483648...2147483648 Большие целые, популяции
float 3.4E-38…3.4E+38 3.333333 Научные расчёты (7 значащих цифр)
double 1.7E-308…1.7E+308 Научные расчеты (15 значащих цифр)
long double 3.4E-4932…3.4E+4932 Финансовые расчёты (19 значащих цифр)

 

Из табл. 2.1 видно, например, что объект типа char является объектом символьного типа, занимает в памяти 1 байт и его значения лежать в диапазоне от –128 до 127. Обычно этот тип используется для небольших целых чисел и ASCII кодов.

Количество значащих цифр — это количество цифр, которым представлено число. Так, в числе 2147483648 десять значащих цифр, в числе 0.789 четыре значащих цифры. Следует отметить, что объект типа long имеет больше значащих цифр, чем объект типа float. Поэтому при переходе от типа long к типу float может быть потеряна точность.

Приведем примеры нескольких вариантов объявления с помощью базовых типов переменных (объектов) различных типов:

unsigned char sym; /*В этой строке объявляется переменная sym типа unsigned char. Это значит, что переменная занимает в памяти 1 байт и диапазон её возможных значений лежит в интервале от 0 до 255 (см. табл. 2.1). Sym – это идентификатор (имя ) переменной придуманное программистом. В конце строки программы стоит точка с запятой, символизирующая конец выражения. */

char Sm1, Sm2, Sm3 = 50;/*В строке программы объявлены три переменные типа char (свойства см. табл. 2.1). Sm1, Sm2, Sm3 – идентификаторы (имена) переменных. Переменная Sm3 инициализирована неименованной десятичной константой 50 типа int. Значение переменных Sm1, Sm2 неопределено, т. е. может быть любым числом в допустимом для этого типа диапазоне. */

double pi = 3.14159; /* Объявлена и инициализирована переменная pi типа double. Значение 3.14159 – это неименованная десятичная константа типа double. Как определить тип неименованной константы по её внешнему виду станет ясно при прочтении следующего параграфа. */

По аналогии с приведенными примерами можно вводить переменные и других базовых типов. Более подробное и полное описание таких понятий как объявление, описание, область существования, области видимости переменных отложим на некоторое время.

В 11-ом стандарте Си++ появилась возможность использовать ключевое слово auto, чтобы компилятор автоматически определил тип определяемой переменной по типу инициализирующего выражения. Напрмер, строку кода

double pi = 3.14159;можно переписать в виде:

auto pi = 3.14159;

Компилятор по типу инициализирующего выражения (3.14159 – константа типа double) определит, что программист хочет объявить переменную типа double. Если инициализирующее значение отсутствует, то auto использовать нельзя.

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

Например, в строке кода list<char>::const_iterator pos= coll.begin(); мы хотим объявить переменную pos типа list<char>::const_iterator. Эту строку кода можно сделать короче с помощью auto, например, так auto pos= coll.begin(); Компилятор знает, что функция coll.begin(), которая используется в данном примере в качестве инициализирующего выражения, в точку вызова возвращает объетк типа list<char>::const_iterator. Поэтому компилятор в состоянии автоматически определить тип переменной pos.

 

Константы

Константа – это лексема, представляющая изображение фиксированного числового, строкового или символьного значения.

Константы бывают нескольких групп: целые, вещественные (с плавающей точкой), перечислимые, символьные и строковые.

Компилятор при анализе текста программы определяет по «внешнему виду» и числовому значению, к какой группе относится константа.

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

Десятичная целая константа определена как последовательность десятичных цифр, начинающаяся не с нуля, если это не число нуль. Для компиляторов BC++ версии 3.11 диапазон допустимых целых положительных значений от 0 до 4294967295. Константы, превышающие указанное максимальное значение, вызывают ошибку на этапе компиляции. Отрицательные константы – это константы без знака, к которым применена операция изменения знака. Абсолютное значение отрицательных десятичных констант для BC++ 3.11 не должно превышать 2147483647.

В табл. 2.2 приведены типы, выбираемые компилятором по умолчанию на основании значения констант. То есть, например, если константа лежит в диапазоне от 0 до 32767, то для неё по умолчанию будет выбран тип int.

 

Таблица 2.2



Дата добавления: 2020-12-11; просмотров: 554;


Поиск по сайту:

Воспользовавшись поиском можно найти нужную информацию на сайте.

Поделитесь с друзьями:

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.011 сек.