Синтаксические элементы
К синтаксическим элементам языка программирования обычно относят следующие:
· набор символов – буквы и цифры (например, символы ASCII, американского стандарта обмена информацией), а также ряд специальных символов;
· идентификаторы – имена объектов языка (типов, констант, переменных и других). Идентификатор состоит из последовательности букв, цифр и знака подчеркивания _. Идентификатор не может начинаться с цифры. Отметим, что abc и Abc – два разных идентификатора, т.е. заглавные и строчные буквы различаются;
· символы (знаки) операций, ограничители и скобки – символы арифметических и логических операций, например: +, -, /, *,!, &, |; символы операций отношения: !=, =, >= и другие; символ; –ограничитель операторов; парные ограничители: (…), [… ] и операторные скобки – {…};
· ключевые слова – идентификаторы, используемые в качестве фиксированной части синтаксиса какой-либо конструкции языка. Например: int, char, if, while, new;
· выражения – конструкции языка для вычисления и изменения значений. Выражения включают символы операций и операнды (константы, переменные, функции и другие объекты языка);
· операторы – конструкции языка, необходимые для обработки данных и управления порядком действий. Оператор задает законченное описание некоторого действия. Различают операторы присваивания, ввода-вывода, операторы, реализующие управляющие структуры;
· комментарии – пояснения, включаемые в текст программы, но не обрабатываемые компилятором. Комментарии в С++:
// – однострочный
/*... */ – многострочный, включающий несколько строк.
Значения и типы
Цель программы состоит в вычислении значений.
Значение данных может представлять собой число, символ или указатель на другой объект данных. При этом компьютер оперирует с физическими представлениями значений, которыми являются совокупности битов, байтов или слов оперативной памяти.
Одной из главных характеристик данных является тип.
Тип данных определяет:
· внутренне представление данных в памяти компьютера;
· множество значений, которые могут принимать данные этого типа;
· операции и функции, которые можно применять к значениям этого типа.
В таблице 1.1 перечислены простые типы данных С ++ и приведены наиболее типичные диапазоны их значений.
Таблица 1.1. Встроенные типы языка С++
| Название | Обозначение | Диапазон значений |
| Байт | char | от -128 до +127 |
| Байт без знака | unsigned char | от 0 до 255 |
| Короткое целое число | short | от -32768 до +32767 |
| Короткое целое число без знака | unsigned short | от 0 до 65535 |
| Целое число | int | от – 2147483648 до + 2147483647 |
| Целое число без знака | unsigned int (или просто unsigned) | от 0 до 4294967295 |
| Длинное целое число | long | от – 2147483648 до + 2147483647 |
| Длинное целое число | unsigned long | от 0 до 4294967295 |
| Вещественное число одинарной точности | float | от ±3.4e-38 до ±3.4e+38 (7 значащих цифр) |
| Вещественное число двойной точности | double | от ±1.7e-308 до ±1.7e+308 (15 значащих цифр) |
| Вещественное число увеличенной точности | long double | от ±1.2e-4932 до ±1.2e+4932 |
| Логическое значение | bool | значения true (истина) или false (ложь) |
| Пусто | void | Не имеет значений. Используется для определения функций, которые не возвращают значения, для указания пустого списка аргументов функции, в операциях с указателями и в операции приведения типов |
Символьная информация представляется с помощью кодов (целые числа типа char или unsigned char) стандарта ASCII Для английского алфавита и знаков препинания этот стандарт определяет коды от 0 до 127. Для представления русских букв используется стандарт КОИ-8 или CP-1251. В этих стандартах русские буквы кодируются числами от 128 до 255.
Для работы с китайским, японским, корейским и рядом других алфавитов одного байта недостаточно.Для символов этих языков используется кодировка с помощью двух байтов типа wchar_t.
Преобразование типов в С++ выполняется с помощью специальных операторов приведения типов. Для приведения целых и вещественных типов при вычислении выражений используется оператор static _ cast.
Например:
float f = 5.25;
int i = static_cast<int>(f); //i=5
int first = 5, second = 10;
double result=static_cast<double>(first)/second;//result=0.5
// Внимание!
double result=first/second; //result=0!
Константы и переменные
Константы – это данные, значения которых не изменяется при выполнении программы.
Константы в языке С++ характеризуется типом, наименованием и значением:
const int X = 240; // константа X, тип– целый, значение 240
const int Z = 0xF0; // константа Z, тип– целый, значение в шестнадцатеричной
// системе счисления F0
При объявлении констант с помощью const обязательно укажите их значения!
При разработке программ в ряде случаев удобно объявить наименования констант с помощью перечисляемого типа:
enum { Red, Yellow, Green }; // константам Red, Yellow, Green автоматически будут
// присвоены целые значения 0, 1, 2 соответственно
enum { EMPTY =-1, FULL =100}; // константа EMPTY имеет значение -1, FULL – 100
Переменные – это данные, значения которых изменяется при выполнении программы. Во время выполнения программы c каждой переменной связана определенная область памяти, где хранится текущее значение переменной.
Переменные в языке С++ характеризуется типом, наименованием, значением и областью действия. В программе перед использованием переменные необходимо объявить и, если требуется, инициализировать (присвоить начальное значение), например так:
int a, b = 10; // переменная a, тип– целый, значение не определено;
// переменная b, тип– целый, значение 10
float f = -2.5; // переменная f, тип– вещественный, значение -2.5
char c = ’ A ’; // переменная c, тип– байт,значение 65 (код символа ’ A ’ в ASCII)
bool b = true; // переменная b, тип– логический,значение «истина» (1).
Описание переменной явно или по умолчанию задает ее область действия.
Область действия переменной – это часть программы, в которой переменную можно использовать для доступа к связанной с ней областью памяти. В зависимости от области действия переменная может быть локальной или глобальной.
Если переменная определена внутри блока (это часть программы, ограниченная фигурными скобками), она называется локальной, область ее действия – от точки описания до конца блока, включая все вложенные блоки.
Если переменная определена вне любого блока, она называется глобальной и областью ее действия считается программа, в которой она определена – от точки описания переменой и до конца программы.
Класс памяти определяет время жизни и область видимости программного объекта, в частности и переменной. Область видимости чаще всего совпадает с областью действия. Если класс памяти не указан явным образом, он определяется компилятором исходя из контекста объявления. Для задания класса памяти используются следующие спецификаторы:
auto автоматическая переменная. Время жизни – с момента описания до конца блока. Создается при входе в блок. При выходе из блока область памяти, связанной с переменной, освобождается. Для глобальных переменных не используется, а для локальных задается по умолчанию;
extern внешняя переменная. Переменная определяется в другом месте программы. Используется для создания переменных, доступных во всех модулях программы, в которых они объявлены;
static статическая переменная. Время жизни – постоянное. Инициализируется один раз;
register регистровая переменная. Аналогична auto, но память выделяется по возможности в регистрах процессора.
Пространства имен – это поименнованные области, которые служат для логического группирования объявлений и ограничения доступа к ним. Формат описания пространства имен следующий:
namespace имя_области{объявления} или
Namespace имя_области;
Например:
namespace demo {
int i = 1;
int k = 0;
}
namespace std; // объекты стандартной библиотеки ввода-вывода std
Доступ к постранству имен в программе осуществляется с помощью оператора :: или оператора using.
Операции и выражения
Выражения используются для вычисления значений. Выражения состоят из операндов, знаков операций и скобок. Операнды задают данные для вычислений. Операции задают действия, которые необходимо выполнить. Каждый операнд является, в свою очередь, выражением или одним из его составляющих, например, константой, переменной иди функцией.
Операции выполняются в соответствии с приоритетами. Для изменения порядка выполнения операций используются круглые скобки. В таблице 1.2 приведен список основных операций, определенных в языке С++, в соответствии с их приоритетами (по убыванию приоритетов, операции с разными приоритетами разделены горизонтальной чертой). В зависимости от количества операндов, которые используются в операциях, они делятся на унарные (один операнд), бинарные (два операнда) и тернарную (три операнда).
Таблица 1.2 Основные операции языка C ++
| Операция | Краткое описание |
Унарные операции








