Типы данных в С++

Типы данных в С++

Набор основных типов данных в С++  – это числовые типы: целый и вещественный, символьный тип и логический. Каждый тип обозначается своим ключевым словом. Любой объект программы ассоциируется с некоторым типом.

int    age = 10;
double price = 19.99;
char   letter = 'A';
bool   find = false;


Между основными типами данных может осуществляться неявное преобразование типов. Если переменной age, имеющей тип int, присвоить константу типа double, например:

age = 33.33;

то значением переменной age станет целое число 33.
Для того чтобы объявить массив и проинициализировать его данными элементами, мы должны написать следующую инструкцию С++:

int fib[9] = { 0, 1, 1, 2, 3, 5, 8, 13, 21 };

Здесь fib – это имя массива. Элементы массива имеют тип int, размер (длина) массива равна 9. Значение первого элемента – 0, последнего – 21. Для работы с массивом мы индексируем (нумеруем) его элементы, а доступ к ним осуществляется с помощью операции взятия индекса. Казалось бы, для обращения к первому элементу массива естественно написать:

int first_elem = fib[1];

Однако это не совсем правильно: в С++ (как и в С) индексация массивов начинается с 0, поэтому элемент с индексом 1 на самом деле является вторым элементом массива, а индекс первого равен 0.Таким образом, чтобы обратиться к последнему элементу массива, мы должны вычесть единицу из размера массива:

fibon[0]; // первый элемент
fibon[1]; // второй элемент
fibon[8]; // последний элемент

Девять элементов массива fib имеют индексы от 0 до 8. Употребление вместо этого индексов 1-9 является одной из самых распространенных ошибок начинающих программистов на С++.
Несмотря на то, что в С++ встроена поддержка для типа данных “массив”, она весьма ограничена. Фактически мы имеем лишь возможность доступа к отдельным элементам массива. С++ не поддерживает абстракцию массива, не существует операций над массивами в целом, таких, например, как присвоение одного массива другому или сравнение двух массивов на равенство, и даже такой простой, на первый взгляд, операции, как получение размера массива. Мы не можем скопировать один массив в другой, используя простой оператор присваивания:

int array0[10]; array1[10];
...
array0 = array1; // ошибка

Массив “не знает” собственный размер. Поэтому мы должны сами следить за тем, чтобы случайно не обратиться к несуществующему элементу массива. Это становится особенно утомительным в таких ситуациях, как передача массива функции в качестве параметра. Можно сказать, что этот встроенный тип достался языку С++ в наследство от С и процедурно-ориентированной парадигмы программирования.

Типы данных в С++: 2 комментария

  1. JosephFranplou

    Great post at least I think so. Thnx a lot for posting that information. By the way, why don’t you get another header?

  2. BrandWriteman

    Now that’s what I wanted to find. Thank you for the article. To my mind, other pages are a bit less useful. I don’t want to offend any one, simply try to keep quality in this way 🙂

    Brand Writeman

Обсуждение закрыто.