Переменные и их типы

Компьютеры – это точные, подчиняющиеся строгому порядку машины. Чтобы запомнить в компьютере какой–нибудь элемент информации, необходимо указать, в каком месте памяти он будет храниться, а также объем области памяти, требуемой для хранения этого элемен­та информации. В языке C++ это можно сделать отно­сительно безболезненно с помощью оператора объявле­ния, в котором указываются тип запоминаемой информации и идентификатор для выделяемой области памяти.

имя_типа имя_переменной;

Этот оператор выделяет в памяти достаточно места для хранения информации, тип которой обозначается в операторе. Всю работу по выделению области памяти и присвоению ей идентификатора выполняет компилятор. В языке C++ требуется объявлять все переменные.

В языках С или Pascal все объявления переменных обычно располагаются в самом начале функции или процедуры. В языке C++ такое ограничение отсутству­ет. Действительно, в языке C++ принято объявлять пе­ременные непосредственно перед тем, как они впервые будут использоваться. В этом случае не требуется рыть­ся в программе в обратном направлении, чтобы увидеть тип переменной. Однако, данный стиль имеет тот недостаток, что объявления всех переменных не располагаются в одном месте. Таким образом, вы не можете с первого взгляда сказать, какие переменные используются в функции.

Имя переменной

Для переменных рекомендуется выбирать имена, имею­щие смысл. Вы должны следовать нескольким простым правилам именования переменных в языке C++:

  • в именах можно использовать только следующие символы: буквы алфавита, цифры и символ подчер­кивания (_);
  • первый символ имени не может быть цифрой;
  • символы верхнего и нижнего регистров рассматри­ваются как разные;
  • в качестве имен нельзя использовать ключевые сло­ва языка C++;
  • в языке C++ на длину имени не накладывается ни­каких ограничений и учитывается значение каждого символа имени.

Типы данных

В языке С++ типы данных можно разделить на несколько видов:

Целочисленные типы.

В языке С++ различные типы целочисленных дан­ных различаются объемом памяти, используемым для их хранения. Больший блок памяти может представлять больший диапазон целых чисел. Кроме того, одни типы данных (типы данных со знаком) могут представлять и положительные, и отрицательные значения, тогда как другие типы данных (типы данных без знака) не могут представлять отрицательные значения. Основные типы целочисленных данных языка C++ (в порядке возраста­ния размера) именуются short, int и long. Каждый из этих типов данных подразделяется на две разновид­ности: со знаком и без знака. В результате вы имеете на выбор шесть различных типов целочисленных данных.

В настоящее время во многих системах используют­ся минимальные гарантированные размеры данных и данные типа short имеют величину, равную 16 битам, а данные типа long – величину, равную 32 битам. Для дан­ных типа int остается возможность выбора. Их величи­на может быть равна 16, 24 или 32 битам. В более ранних реализациях языка C++ на компьютерах IBM PC данные типа int имеют, как правило, величину 16 битов, в Windows 95, Windows 98, Windows NT и во многих другихpeaлизациях языка C++ величины типа int имеют величину 32 бита.

При объявлении переменных имена данных этих типов используются точно так же. как имена данных тина int:

short a;//создает переменную типа short int

int b;//создает переменную типа int

long c;//создает переменную типа long int

В действительности, short – это сокращение от short int, a long – сокращение oт long int. Данные этих трех типов: int, sort и long – являются данными со знаком, а это означает, что диапазон их возможных значений разделяется приблизительно по­ровну между положительными и отрицательными зна­чениями. Например, 16–битовые данные типа int могут лежать в диапазоне от –32768 до +32767.

Для каждого из трех только что рассмотренных типов данных имеется его разновидность: тип данных без зна­ка. Данные этих типов не могут принимать отрицатель­ные значения. Преимуществом здесь является то, что увеличивается максимально возможное значение дан­ных. Например, тип данных short представляет данные, лежащие в диапазоне от -32768 до +32767, тогда как раз­новидность этого типа данных без знака может представ­лять данные, лежащие в диапазоне от 0 до 65535. Конеч­но, типы данных без знака можно использовать только для величин, которые никогда не бывают отрицательны­ми. Чтобы создать разновидность целочисленной пе­ременной без знака, просто модифицируйте объявление с помощью ключевого слова unsigned:

unsigned short a;//переменная типа unaigned short

unsigned int b;//переменная типа unsigned int

unsigned long c;//переменная типа unsigned long

Обратите внимание, что ключевое слово unsigned является сокращением от unsigned int.

Типы с плавающей точкой

Эти типы данных позволяют представлять числа с дробными частями. В языке C++, как и в стандарте ANSI С, имеется три типа данных с плавающей точкой: float,double и long double.

float a;//создает переменную типа float

double b;//создает переменную типа double

long double c;//создает переменную типа long double

Все эти три типа данных могут иметь одинако­вые размеры. Однако, как правило, данные типа float имеют величину 32 бита, данные типа double — 64 бита и данные типа long double — 80, 96 или 128 битов.

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

 

Инициализация переменных

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

Для инициализации значения переменных ис­пользовать стандартные константы. Инициализировать переменную можно, присваивая ей значение другой пе­ременной, при условии, что эта переменная была опре­делена раньше. Можно даже инициализировать перемен­ную значением выражении при условии, что значения всех компонентов выражения известны во время компи­ляции:

int a=5;//инициализирует переменную а значением 5

int b=a;//инициализирует переменную b значением 5

float c=2.5;//инициализирует переменную b значением 2.5

float d =a+b+c;//инициализирует переменную c значением 12.5

Если объявление переменной a переместить в конец этого списка операторов, то инициализации пе­ременных b и d станут недействительными, по­скольку значение переменной a не будет известно в то время, когда компилятор будет пытаться проинициализировать эти две переменные.

 

Описание нескольких переменных

Если несколько переменных имеют один тип, то их можно описать в одной строке через запятую. Например:

int a,b;

unsigned short x,y;

float k,l,m;

Также в одной строке можно описать несколько переменных с их одновременной инициализацией:

int a=-1, b=6;

short x=0, y=6;

float k=0.12, l=3.68, m=125.365;(начало)