Язык С++ строго типизированный язык программирования, это значит требуется явное (очевидное) указание типа. «Как корабль назовёшь — так он и поплывёт», поэтому любой переменной присваивается тип.
В C++ существуют следующие типы:
1 2 3 4 5 6 7 8 9 10 11 |
bool - 1 байт - диапазон [0 - 255] char - 1 байт - диапазон [0 - 255] short int - 2 байт - диапазон [-32 768 - 32 767 ] unsigned short int- 2 байт - диапазон [0 - 65 535] int - 4 байт - диапазон [-2 147 483 648 - 2 147 483 647] unsigned int - 4 байт - диапазон [0 - 4 294 967 295] long int - 4 байт - диапазон [-2 147 483 648 - 2 147 483 647] unsigned long int - 4 байт - диапазон [0 - 4 294 967 295] float - 4 байт - диапазон [-2 147 483 648.0 - 2 147 483 647.0] long float - 8 байт - диапазон [-9 223 372 036 854 775 808 .0 - 9 223 372 036 854 775 807.0] double - 8 байт - диапазон [-9 223 372 036 854 775 808 .0 - 9 223 372 036 854 775 807.0] |
Каждый из них занимает определённое количество памяти компьютера. Следует подходить с умом к выбору используемого типа при расчёте.
Тип float, long float, double — являются числами с плавающей точкой, то есть это типы, которые имеют дробную часть. Если поделить 5 на 2, то получится 2.5, но это только если запись результата вычислений осуществляется в тип с плавающей точкой, в противном случае (например, мы делим наши числа и помещаем результат в переменную типа int, мы не получим 2.5, мы получим 2, дробная часть отбрасывается автоматически.
Символ «=» является символом присвоения, он необходим чтобы мы могли записывать в переменную какое-либо значение.
1 2 |
int A = 2/5; //получаем 2 float B = 2/5; //получаем 2.5 |
Это маленький нюанс, который следует учитывать при любых расчётах.
Для того, чтобы присвоить некое значение переменной типа float или double необходимо писать значение с точкой и совершенно не имеет значения, что Вы изначально не подразумевали дробную часть, это синтаксис языка и от него никуда не деться.
1 2 3 |
double A = 1.0; float B = 2.0; long float C = 0.0; |
Использовать тип double было бы логично для любых расчётов — самый большой, есть плавающая точка. Всё хорошо, кроме одного — на этот тип отводится 8 байт. Кажется это ничтожно, но когда таких переменных сотни и ими приходится часто оперировать в алгоритме, то система имеет шанс «затупить», а это далеко не лучший показатель качества программирования.
«Какой программист — такой и код» — Это аксиома.
Если вы считаете и считаете… и вдруг результат пропал, хотя вы использовали тип unsigned long int, то поздравляю — Вы достигли предела этого типа с диапазоном в четыре с лишним миллиона. В таком случае выбирайте более широкий тип данных (например, float).
Также существуют так называемые «константные переменные» — это такие переменные значения которых не могут быть изменены. Зачем оно надо? Скажем, нам нужно постоянно использовать определённое значение в расчётах, но так, чтобы никогда его случайно не изменить.
Скажем, нам нужно использовать в расчётах число Пи (3.14). Если запишем это значение в простую переменную, то мы, конечно, можем его вызывать и использовать, но мы тогда можем и изменить его. Предположим мы забыли какое имя носила переменная содержащая в себе значение числа Пи, и мы случайно положили в эту переменную какое-то число (совершенно случайно). И теперь мы не можем использовать дальше в расчётах это наше число Пи, так как его нет!
Этим нам и полезна константа.
Синтаксис константных переменных отличается лишь в одном моменте: в моменте указания, что переменная является константой.
1 |
const float pi = 3.14; |
Сначала идёт спецификатор const (спецификатор — если по-русски, это такое слово, которое показывает компилятору, что данная переменная не простая), потом тип переменной, потом имя переменной.
Таким образом мы познакомились с переменными языка программирования C++.