2.  Масиви

Дефиниране и използване на масиви, масивите като параметри
* Дефиниране и използване:
 -- дефиниция
double salaries[10];
-- използване
salaries[4] = 355;
-- номериране на индекси
salaries[0] - първи елемент
salaries[1] - втори елемент
salaries[2] - трети елемент
salaries[3] - четвърти елемент
...
salaries[9] - десети елемент

Обхождане на елементите на масив:
const int SAL_MAXSIZE = 10;
double sal[SAL_MAXSIZE];
int sal_size = 0;
bool more = true;
while (more and sal_size < SAL_MAXSIZE)
{ cout << "Enter salary or 0 to quit";
  double x;
  cin >> x;
  if (cin.fail()) more = false
  else
  {  sal[sal_size] = x;   sal_size++;   }
}

* Mасивите като параметри на функции
Масивите винаги се предават по псевдоним.
double maximum(const double a[], int a_size)
{  if (a_size == 0) return 0;
   double highest = a[0];
   int i;
   for (i = 1; i < a_size; i++)
      if (a[i] > highest) highest = a[i];
   return highest;
}
Следващата програма чете заплати от стандартен вход и отпечатва максималната заплата.
// salarray.cpp
#include <iostream>
using namespace std;

void read_data(double a[], int a_maxsize, int& a_size)
{  a_size = 0;
   double x;
   while (a_size < a_maxsize and (cin >> x))
   {  a[a_size] = x;      a_size++;   }
}

double maximum(const double a[], int a_size)
{  if (a_size == 0) return 0;
   double highest = a[0];
   int i;
   for (i = 1; i < a_size; i++)
      if (a[i] > highest) highest = a[i];
   return highest;
}

int main()
{  const int SALARIES_MAXSIZE = 100;
   double salaries[SALARIES_MAXSIZE];
   int salaries_size = 0;

   cout << "Please enter all salary data: ";
   read_data(salaries, SALARIES_MAXSIZE, salaries_size);

   if (salaries_size == SALARIES_MAXSIZE and not cin.fail())
      cout << "Sorry--extra data ignored\n";

   double maxsal = maximum(salaries, salaries_size);
   cout << "The maximum salary is " << maxsal << "\n";
   return 0;
}

Масиви от символи
char input = 'y';
char greeting[6] = "Hello";
char greeting[] = "Hello";
char greeting[10] = "Hello";
Проблемът със символа за край на низ при използване на масиви от символи.

Двумерни масиви
// matrix.cpp
#include <iostream>
#include <iomanip>
#include <cmath>
using namespace std;

const int BALANCES_ROWS = 11;
const int BALANCES_COLS = 6;

double future_value(double initial_balance, double p, int nyear)
{  double b = initial_balance * pow(1 + p/12/100, 12*nyear);
   return b;   }

void print_table(const double table[][BALANCES_COLS], int table_rows)
{  int i, j;
   cout << fixed << setprecision(2);
   for (i = 0; i < table_rows; i++)
   {  for (j = 0; j < BALANCES_COLS; j++)
         cout << setw(10) << table[i][j];
      cout << "\n";
   }
}

int main()
{  double balances[BALANCES_ROWS][BALANCES_COLS];
   int i;
   int j;
   for (i = 0; i < BALANCES_ROWS; i++)
      for (j = 0; j < BALANCES_COLS; j++)
         balances[i][j] = future_value(10000, 5 + i * 0.5,
            5 + j * 5);

   print_table(balances, BALANCES_ROWS);
   return 0;
}