Типы данных в С++
Набор основных типов данных в С++ – это числовые типы: целый и вещественный, символьный тип и логический. Каждый тип обозначается своим ключевым словом. Любой объект программы ассоциируется с некоторым типом.
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; // ошибка
Массив “не знает” собственный размер. Поэтому мы должны сами следить за тем, чтобы случайно не обратиться к несуществующему элементу массива. Это становится особенно утомительным в таких ситуациях, как передача массива функции в качестве параметра. Можно сказать, что этот встроенный тип достался языку С++ в наследство от С и процедурно-ориентированной парадигмы программирования.
Great post at least I think so. Thnx a lot for posting that information. By the way, why don’t you get another header?
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