Uma array é uma coleção de itens armazenados em locais de memória contíguos. A ideia é armazenar vários itens do mesmo tipo juntos. Isso torna mais fácil calcular a posição de cada elemento, simplesmente adicionando um deslocamento a um valor base, ou seja, a localização da memória do primeiro elemento do array (geralmente denotado pelo nome do array). O valor base é o índice 0 e a diferença entre os dois índices é o deslocamento.
Para simplificar, podemos pensar em uma array como uma frota de escadas onde em cada degrau é colocado um valor (digamos um de seus amigos). Aqui, você pode identificar a localização de qualquer um de seus amigos, simplesmente sabendo a contagem da etapa em que eles estão. 
Lembre-se: “A localização do próximo índice depende do tipo de dados que usamos”. 

variedade

A imagem acima pode ser vista como uma vista de nível superior de uma escada onde você está na base da escada. Cada elemento pode ser identificado exclusivamente por seu índice na array (de maneira semelhante, como você poderia identificar seus amigos pela etapa em que eles estavam no exemplo acima). 

Tamanho da array

Na linguagem C, array tem um significado de tamanho fixo, uma vez que o tamanho é dado a ele, ele não pode ser alterado, ou seja, você não pode encolhê-lo nem expandi-lo. O motivo era que, para expandir, se mudarmos o tamanho, não podemos ter certeza (nem sempre é possível) de que obteremos o próximo local de memória para nós de forma gratuita. A redução não funcionará porque o array, quando declarado, obtém memória alocada estaticamente e, portanto, o compilador é o único que pode destruí-lo.
Tipos de indexação em uma array: 

  • 0 (indexação baseada em zero): O primeiro elemento da array é indexado por um subscrito de 0.
  • 1 (indexação baseada em um): O primeiro elemento da array é indexado pelo subscrito de 1.
  • n (indexação baseada em n): O índice básico de uma array pode ser escolhido livremente. Normalmente, as linguagens de programação que permitem a indexação baseada em n também permitem valores de índice negativos e outros tipos de dados escalares como enumerações ou caracteres podem ser usados ​​como um índice de array.


#include <iostream>
using namespace std;
 
int main()
{
    // Creating an integer array named arr of size 10.
    int arr[10];
    // accessing element at 0 index and setting its value
    // to 5.
    arr[0] = 5;
    // access and print value at 0 index we get the output
    // as 5.
    cout << arr[0];
    return 0;
}
#include <stdio.h>
 
int main()
{
 
    // Creating an integer array named arr of size 10.
    int arr[10];
    // accessing element at 0 index and setting its value
    // to 5.
    arr[0] = 5;
    // access and print value at 0 index we get the output
    // as 5.
    printf("%d", arr[0]);
 
    return 0;
}
Saída
5

Aqui, o valor 5 é impresso porque o primeiro elemento tem índice zero e no índice zero já atribuímos o valor 5.

Vantagens de usar arrayes: 

  • As arrayes permitem acesso aleatório aos elementos. Isso torna o acesso aos elementos por posição mais rápido.
  • Os arrays têm melhor  localidade de cache, o  que faz uma grande diferença no desempenho.
  • Os arrays representam vários itens de dados do mesmo tipo usando um único nome.

Desvantagens de usar arrays: 
Você não pode mudar o tamanho, ou seja, depois de declarar o array, você não pode mudar seu tamanho por causa da alocação de memória estática. Aqui, a (s) inserção (ões) e exclusão (ões) são difíceis, pois os elementos são armazenados em locais de memória consecutivos e a operação de deslocamento também é cara.
Agora, se tomarmos um exemplo de implementação da estrutura de dados Stack usando array, há algumas falhas óbvias. 
Vamos analisar a operação POP da pilha. O algoritmo seria mais ou menos assim. 

  1. Verifique se há estouro negativo da pilha
  2. Diminua o topo em 1

Então, o que estamos fazendo é que, o ponteiro para o elemento superior é decrementado significa que estamos apenas limitando nossa visão; na verdade, esse elemento permanece lá falando do espaço de memória. Se você tiver qualquer tipo de dados primitivo, pode estar tudo bem, mas o objeto de um array consumirá muita memória.

Exemplos - 

// A character array in C/C++/Java
char arr1[] = {'g', 'e', 'e', 'k', 's'};

// An Integer array in C/C++/Java
int arr2[] = {10, 20, 30, 40, 50};

// Item at i'th index in array is typically accessed
// as "arr[i]".  For example arr1[0] gives us 'g'
// and arr2[3] gives us 40.

Normalmente, um array de caracteres é chamado de 'string', enquanto um array de ints ou floats é simplesmente chamado de array.

Aplicativos no Array

  1. Array armazena elementos de dados do mesmo tipo de dados.
  2. Arrays podem ser usados ​​para agendamento de CPU.
  3. Usado para implementar outras estruturas de dados como Stacks, Queues, Heaps, Hash tables, etc.

Se você gosta de GeeksforGeeks e gostaria de contribuir, você também pode escrever um artigo usando write.geeksforgeeks.org ou enviar seu artigo para review-team@geeksforgeeks.org. Veja o seu artigo na página principal do GeeksforGeeks e ajude outros Geeks. 
Escreva comentários se encontrar algo incorreto ou se quiser compartilhar mais informações sobre o tópico discutido acima.