Переменная предоставляет нам именованное хранилище, которым наши программы могут манипулировать. Каждая переменная в C ++ имеет определенный тип, который определяет размер и расположение памяти переменной; диапазон значений, которые могут быть сохранены в этой памяти; и набор операций, которые могут быть применены к переменной.
Имя переменной может состоять из букв, цифр и символа подчеркивания. Он должен начинаться либо с буквы, либо с подчеркивания. Прописные и строчные буквы различны, потому что C ++ чувствителен к регистру —
Существуют следующие основные типы переменных в C ++, как описано в предыдущей главе:
| Sr.No | Тип и описание | 
|---|---|
| 1 | BOOL Хранит либо значение true, либо false. | 
| 2 | голец Обычно один октет (один байт). Это целочисленный тип. | 
| 3 | ИНТ Наиболее натуральный размер целого числа для машины. | 
| 4 | поплавок Значение с плавающей запятой одинарной точности. | 
| 5 | двойной Значение с плавающей запятой двойной точности. | 
| 6 | недействительным Представляет отсутствие типа. | 
| 7 | wchar_t Широкий тип символов. | 
BOOL
Хранит либо значение true, либо false.
голец
Обычно один октет (один байт). Это целочисленный тип.
ИНТ
Наиболее натуральный размер целого числа для машины.
поплавок
Значение с плавающей запятой одинарной точности.
двойной
Значение с плавающей запятой двойной точности.
недействительным
Представляет отсутствие типа.
wchar_t
Широкий тип символов.
C ++ также позволяет определять различные другие типы переменных, которые мы рассмотрим в последующих главах, таких как Enumeration, Pointer, Array, Reference, структуры данных и классы .
В следующем разделе будет описано, как определять, объявлять и использовать различные типы переменных.
Определение переменной в C ++
Определение переменной сообщает компилятору, где и сколько памяти нужно создать для переменной. Определение переменной определяет тип данных и содержит список из одной или нескольких переменных этого типа следующим образом:
type variable_list;
Здесь тип должен быть допустимым типом данных C ++, включая char, w_char, int, float, double, bool или любой определенный пользователем объект и т. Д., А variable_list может состоять из одного или нескольких имен идентификаторов, разделенных запятыми. Некоторые действительные объявления показаны здесь —
int i, j, k; char c, ch; float f, salary; double d;
Линия int i, j, k; оба объявляют и определяют переменные i, j и k; который инструктирует компилятор создавать переменные с именами i, j и k типа int.
Переменные могут быть инициализированы (им присвоено начальное значение) в их объявлении. Инициализатор состоит из знака равенства, за которым следует постоянное выражение:
type variable_name = value;
Вот некоторые примеры:
extern int d = 3, f = 5; // declaration of d and f. int d = 3, f = 5; // definition and initializing d and f. byte z = 22; // definition and initializes z. char x = 'x'; // the variable x has the value 'x'.
Для определения без инициализатора: переменные со статической продолжительностью хранения неявно инициализируются с помощью NULL (все байты имеют значение 0); начальное значение всех других переменных не определено.
Объявление переменных в C ++
Объявление переменной дает гарантию компилятору, что существует одна переменная с заданным типом и именем, так что компилятор приступает к дальнейшей компиляции, не требуя полной информации о переменной. Объявление переменной имеет смысл только во время компиляции, компилятору требуется фактическое определение переменной во время компоновки программы.
Объявление переменной полезно, когда вы используете несколько файлов и определяете свою переменную в одном из файлов, которые будут доступны во время компоновки программы. Вы будете использовать ключевое слово extern для объявления переменной в любом месте. Хотя вы можете объявить переменную несколько раз в вашей программе на C ++, но она может быть определена только один раз в файле, функции или блоке кода.
пример
Попробуйте следующий пример, где переменная была объявлена вверху, но она была определена внутри основной функции —
#include <iostream> using namespace std; // Variable declaration: extern int a, b; extern int c; extern float f; int main () { // Variable definition: int a, b; int c; float f; // actual initialization a = 10; b = 20; c = a + b; cout << c << endl ; f = 70.0/3.0; cout << f << endl ; return 0; }
Когда приведенный выше код компилируется и выполняется, он дает следующий результат —
30 23.3333
Та же концепция применяется к объявлению функции, когда вы предоставляете имя функции во время ее объявления, и ее фактическое определение может быть дано где-либо еще. Например —
// function declaration
int func();
int main() {
   // function call
   int i = func();
}
// function definition
int func() {
   return 0;
}
Lvalues и Rvalues
В C ++ есть два вида выражений:
- 
lvalue — Выражения, которые ссылаются на ячейку памяти, называются выражением «lvalue». Lvalue может отображаться как левая или правая сторона задания. 
- 
rvalue — термин rvalue относится к значению данных, которое хранится по некоторому адресу в памяти. Значение r — это выражение, которому не может быть присвоено значение, что означает, что значение r может появляться с правой, но не с левой стороны присвоения. 
lvalue — Выражения, которые ссылаются на ячейку памяти, называются выражением «lvalue». Lvalue может отображаться как левая или правая сторона задания.
rvalue — термин rvalue относится к значению данных, которое хранится по некоторому адресу в памяти. Значение r — это выражение, которому не может быть присвоено значение, что означает, что значение r может появляться с правой, но не с левой стороны присвоения.
Переменные являются lvalues и могут отображаться в левой части назначения. Числовые литералы являются r-значениями, поэтому не могут быть назначены и не могут отображаться слева. Следующее является действительным утверждением —
int g = 20;
Но следующее не является допустимым утверждением и приведет к ошибке времени компиляции: