Продолжая с того места, где мы остановились:
#include <iostream> using namespace std; int main() { int num; cout << "What is your favorite number?"; cin >> num; cout << "Wow! " << num << ", huh?" << "\nMine is 3."; return 0; };
Мы узнали о библиотеке iostream, стандартном пространстве имен и простом вводе/выводе!
Перейдем к массивам! Каждый массив может содержать значения только одного типа данных, например int (целое число), char (символ), числа с плавающей запятой, двойное число и т. д...
Объявление массива:
dataType nameOfArray[arraySize]
Массив должен представлять: тип данных, которые будут храниться, имя массива и количество элементов в массиве. Перед инициализацией нашего первого массива существует несколько типов типов данных и соответствующих им битов данных. Это — отличный ориентир, когда вы решаете, какой тип данных использовать для достижения эффективного управления памятью. JavaScript позволяет нам сорваться с крючка таким образом, что существует процесс сборки мусора, освобождающий нашу память, когда наша программа не использует ее. В C++ управление памятью у нас ручное — мы коснемся этой темы в следующих постах, но об этом нужно помнить.
Давайте объявим наш первый массив!
short favoriteNumbers[10];
Это так же просто, как то, что мы объявили массив с именем favoriteNumbers
, который может содержать до 10 значений. В этом примере мы объявляем favoriteNumbers
с короткими — короткие и целые оба являются 2 байтами на 16 компиляторах; на компиляторе 32 int — 4 байта, а short — 16 бит. 8 бит эквивалентны 1 байту.
#include <iostream> using namespace std; int main() { int favorites[2]; // declare an array with 2 elements favorites[0] = 1; // assign first value of favorites to 1 favorites[1] = 3; // assign second value of favorites to 3 cout << sizeof favorites; return 0; // returns 8 because each value(int) is 4 bytes };
В нашей основной функции мы объявили массив, который может содержать до 2 значений. Если мы попытаемся присвоить favorites[2] = 2;
, наш компилятор проигнорирует это и выведет 8, потому что, когда мы объявили наш массив, нам разрешено хранить только 2 значения.
Размер массива постоянен, поскольку он занимает блоки нединамической памяти.
Когда int favorites[2]
объявляется, значения в этом массиве равны 0 (не undefined или null), пока мы не присвоим ему значение.
Другие способы инициализации массива:
int favorites[3] = {1,3,8};
Немедленно присвойте значения favorites
после его объявления.
int favorites[] = {1,3,4};
Компилятор подсчитает количество элементов.
array<int, 3> favorites;
Эту инициализацию можно использовать только тогда, когда мы указываем в начале нашей программы #include <array>
— это разрешает доступ к библиотеке массивов. array<int, 3> favorites {1,3,4};
также разрешено.
int favorites[3] = {1,3,8}; int myFavorites[3]; myFavorites = favorites
В отличие от Javascript, это не разрешено в C++. Данные не могут быть переданы таким образом, потому что данные в нашем массиве избранного указывают на место в памяти. Далее мы обсудим массивы со строками, структурами и указателями!