Por exemplo, esta variável :

É uma array que pode estocar 10 ints

Podemos por um elemento em qualquer posição da lista mesmo não tento elementos à sua direita e esquerda, por exemplo :

int luckyNumbers [10]
luckyNumbers [1] = 80
printf ("%d), luckyNumbers [1] )

/* O programa vai mostrar o 80 que está na posição 1, 
mesmo que não exista um elemento na pisição 0 /*

Outro exemplo :

int numbers [ ] = {4, 8, 15, 16, 23, 42}

Para aceder a um posição especifica da lista :

printf (" %d", numbers [0] ) —> 4

printf (" %d", numbers [2] ) —> 15

Para modificar um elemento de uma determinada posição da lista :

numbers [1] = 200 —> {4, 200, 15, 16, 23, 42}

int main () {

	int x;

	int y [10]; // Os indices da array vai de 0 (sendo o primeiro element) a 9 (sendo o ultimo elemento)
							// 10 é a dimensao da array
							// ==> Quando definimos um array, somos obrigados de indicar a dimensao !!!

	int y [] = {1,2,3,4,5,6,7,8,9,10} // A dimensao sera a quantidade de elementos que esta na array ja inicializada
																		// Nao é possivel mudar o tamanho da array posteriormente

	     /* Isto nao é possibel */
///////////////////////////////////////	
	int y [10]                         // 
	y = {1,2,3,4,5,6,7,8,9,10}         //
///////////////////////////////////////
	int y [10] = {1,2,3,4,5,6,7,8,9,10}//
	int b [10];                        //
	y = b;                             //
///////////////////////////////////////

	return 0;
}

Função para copiar elementos de uma array para outra array :

void copiaArray (int destino [], int origem []) {  // No argumento de uma funçao, nao ha necessidade de indicar a dimensao

	int i;

	for (i=0; i<10; i++)
			destino [i] = origem [i];

}

// Para esta funçao poder ser utilizada para arrays de nao importa a dimensao, podemos fazer assim :
void copiaArray (int destino [], int origem [], int N) {

	int i;

	for (i=0; i<N; i++)
			destino [i] = origem [i];

}
//

int main () {

	int i;

	int y [10] = {1.2.3.4.5.6.7.8.9.10}
	int b [10]

	copiaArray (b, y, 10);	

	return 0;
}

**!!!**
**/*** Se usarmos o C Tutor, podemos ver que o int y [10], é o indereço de memória aonde fica o array e cria um pointer;
	 Logo a funcao Array nao cria uma copia, ela modifica diretamente o int y [10];
	 Logo o b e o y ja sao endereços de memoria, logo nao é necessario usar &y e &b;
	 Logo ao passarmos uma Array num argumento da funcao, ela vai de fato escrever diretamente no array e nao sobre uma copia. ***/**

array = endereço de memória, logo se passar um array numa função e nessa função modificarmos o array, ele na main também será modificado.

Se somarmos um int a um array (ou seja endereço de memória), será como mover aonde o array começará (se for um long int será movido 2x mais) :