Neste tutorial, aprenderemos a trabalhar com arrays. Aprenderemos a declarar, inicializar e acessar elementos de array na programação C ++ com a ajuda de exemplos.
Em C ++, um array é uma variável que pode armazenar vários valores do mesmo tipo. Por exemplo,
Suponha que uma classe tenha 27 alunos e precisamos armazenar as notas de todos eles. Em vez de criar 27 variáveis separadas, podemos simplesmente criar uma matriz:
double grade(27);
Aqui, grau é uma matriz que pode conter no máximo 27 elementos de double
tipo.
Em C ++, o tamanho e o tipo dos arrays não podem ser alterados após sua declaração.
Declaração de array C ++
dataType arrayName(arraySize);
Por exemplo,
int x(6);
Aqui,
int
- tipo de elemento a ser armazenado- x - nome da matriz
6
- tamanho da matriz
Elementos de acesso na matriz C ++
Em C ++, cada elemento em uma matriz é associado a um número. O número é conhecido como índice de matriz. Podemos acessar os elementos de um array usando esses índices.
// syntax to access array elements array(index);
Considere o array x que vimos acima.

Algumas coisas para lembrar:
- Os índices da matriz começam com
0
. O que significa x (0) é o primeiro elemento armazenado no índice0
. - Se o tamanho de uma matriz for
n
, o último elemento é armazenado no índice(n-1)
. Neste exemplo, x (5) é o último elemento. - Os elementos de uma matriz possuem endereços consecutivos. Por exemplo, suponha que o endereço inicial de
x(0)
seja 2120d. Então, o endereço do próximo elementox(1)
será 2124d, o endereço dex(2)
será 2128d e assim por diante.
Aqui, o tamanho de cada elemento é aumentado em 4. Isso ocorre porque o tamanho deint
é 4 bytes.
Inicialização de array C ++
Em C ++, é possível inicializar um array durante a declaração. Por exemplo,
// declare and initialize and array int x(6) = (19, 10, 8, 17, 9, 15);

Outro método para inicializar a matriz durante a declaração:
// declare and initialize an array int x() = (19, 10, 8, 17, 9, 15);
Aqui, não mencionamos o tamanho da matriz. Nesses casos, o compilador calcula automaticamente o tamanho.
Matriz C ++ com membros vazios
Em C ++, se um array tem um tamanho n
, podemos armazenar até n número de elementos no array. No entanto, o que acontecerá se armazenarmos menos de n número de elementos.
Por exemplo,
// store only 3 elements in the array int x(6) = (19, 10, 8);
Aqui, o array x tem um tamanho de 6
. No entanto, o inicializamos com apenas 3 elementos.
Nesses casos, o compilador atribui valores aleatórios aos lugares restantes. Muitas vezes, esse valor aleatório é simples 0
.

Como inserir e imprimir elementos do array?
int mark(5) = (19, 10, 8, 17, 9) // change 4th element to 9 mark(3) = 9; // take input from the user // store the value at third position cin>> mark(2); // take input from the user // insert at ith position cin>> mark(i-1); // print first element of the array cout <> mark(i-1);
Exemplo 1: Exibindo Elementos de Matriz
#include using namespace std; int main() ( int numbers(5) = (7, 5, 6, 12, 35); cout << "The numbers are: "; // Printing array elements // using range based for loop for (const int &n : numbers) ( cout << n << " "; ) cout << "The numbers are: "; // Printing array elements // using traditional for loop for (int i = 0; i < 5; ++i) ( cout << numbers(i) << " "; ) return 0; )
Resultado
Os números são: 7 5 6 12 35 Os números são: 7 5 6 12 35
Aqui, usamos um for
loop para iterar de i = 0
para i = 4
. Em cada iteração, imprimimos numbers(i)
.
Mais uma vez, usamos um intervalo baseado em loop for para imprimir os elementos do array. Para aprender mais sobre este loop, verifique C ++ Ranged for Loop.
Nota: Em nosso loop baseado em intervalo, usamos o código em const int &n
vez de int n
como a declaração de intervalo. No entanto, const int &n
é mais preferido porque:
- Usar
int n
simplesmente copia os elementos do array para a variável n durante cada iteração. Isso não é eficiente em termos de memória.
& n, entretanto, usa o endereço de memória dos elementos do array para acessar seus dados sem copiá-los para uma nova variável. Isso é eficiente em termos de memória. - Estamos simplesmente imprimindo os elementos do array, não os modificando. Portanto, usamos de
const
modo a não alterar acidentalmente os valores do array.
Exemplo 2: pegue entradas do usuário e armazene-as em uma matriz
#include using namespace std; int main() ( int numbers(5); cout << "Enter 5 numbers: " << endl; // store input from user to array for (int i = 0; i > numbers(i); ) cout << "The numbers are: "; // print array elements for (int n = 0; n < 5; ++n) ( cout << numbers(n) << " "; ) return 0; )
Resultado
Enter 5 numbers: 11 12 13 14 15 The numbers are: 11 12 13 14 15
Once again, we have used a for
loop to iterate from i = 0
to i = 4
. In each iteration, we took an input from the user and stored it in numbers(i)
.
Then, we used another for
loop to print all the array elements.
Example 3: Display Sum and Average of Array Elements Using for Loop
#include using namespace std; int main() ( // initialize an array without specifying size double numbers() = (7, 5, 6, 12, 35, 27); double sum = 0; double count = 0; double average; cout << "The numbers are: "; // print array elements // use of range-based for loop for (const double &n : numbers) ( cout << n << " "; // calculate the sum sum += n; // count the no. of array elements ++count; ) // print the sum cout << "Their Sum = " << sum << endl; // find the average average = sum / count; cout << "Their Average = " << average << endl; return 0; )
Output
The numbers are: 7 5 6 12 35 27 Their Sum = 92 Their Average = 15.3333
In this program:
- We have initialized a double array named numbers but without specifying its size. We also declared three double variables sum, count, and average.
Here,sum =0
andcount = 0
. - Then we used a range based
for
loop to print the array elements. In each iteration of the loop, we add the current array element to sum. - Também aumentamos o valor de count
1
em cada iteração, para que possamos obter o tamanho do array ao final do loop for. - Depois de imprimir todos os elementos, imprimimos a soma e a média de todos os números. A média dos números é dada por
average = sum / count;
Nota: Usamos um for
loop variado em vez de um for
loop normal .
Um for
loop normal exige que especifiquemos o número de iterações, que é dado pelo tamanho do array.
Mas um for
loop de alcance não requer tais especificações.
Array C ++ fora dos limites
Se declararmos uma matriz de tamanho 10, a matriz conterá elementos do índice 0 a 9.
No entanto, se tentarmos acessar o elemento no índice 10 ou mais de 10, isso resultará em comportamento indefinido.