Unetway

C++ - Типы переменных

Переменная предоставляет нам именованное хранилище, которое могут манипулировать нашими программами. Каждая переменная в C ++ имеет определенный тип, который определяет размер и расположение памяти переменной; диапазон значений, которые могут быть сохранены в этой памяти; и набор операций, которые могут быть применены к переменной.

Имя переменной может состоять из букв, цифр и символа подчеркивания. Он должен начинаться с буквы или подчеркивания. Буквы верхнего и нижнего регистра различны, потому что C ++ чувствителен к регистру -

Существуют следующие основные типы переменных в C ++:

bool

Сохраняет значение true или false.

char

Обычно один октет (один байт). Это целочисленный тип.

int

Самый естественный размер целого для машины.

float

Значение с плавающей запятой с одиночной точностью.

double

Значение с плавающей запятой с двойной точностью.

void

Представляет отсутствие типа.

wchar_t

Широкий характер.

C ++ также позволяет определять различные другие типы переменных, которые мы рассмотрим в последующих главах, таких как Enumeration, Pointer, Array, Reference, Data structure и Classes .

В следующем разделе рассказывается, как определять, объявлять и использовать различные типы переменных.

Определение переменных в C ++

Определение переменной сообщает компилятору, где и сколько хранилища следует создать для переменной. Определение переменной указывает тип данных и содержит список одной или нескольких переменных этого типа следующим образом:

type variable_list;

Здесь type должен быть допустимым типом данных 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». Значение l может отображаться как в левой, так и в правой части задания.
  • rvalue - термин rvalue относится к значению данных, которое хранится на некотором адресе в памяти. Rvalue - это выражение, которое не может иметь назначенное ему значение, что означает, что rvalue может отображаться в правой, но не левой части задания.

Переменные являются lvalues ​​и поэтому могут отображаться в левой части задания. Числовые литералы являются значениями r и поэтому не могут быть назначены и не могут появляться с левой стороны. Ниже приведено действительное заявление:

int g = 20;

Но следующее не является допустимым оператором и генерирует ошибку времени компиляции:

10 = 20;