Переменные и их типы
Компьютеры – это точные, подчиняющиеся строгому порядку машины. Чтобы запомнить в компьютере какой–нибудь элемент информации, необходимо указать, в каком месте памяти он будет храниться, а также объем области памяти, требуемой для хранения этого элемента информации. В языке 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;(начало)