Ponteiros de Vetores

Quando percorremos um vetor bidimensional utilizamos a seguinte construção:

vetor[linha][coluna]

Porém quando utilizamos ponteiros para acessar os elementos do vetor, a construção muda para:

*(*(vetor + linha) + coluna)

Veja o exemplo abaixo:

#include 
#include 

void main() {

	int a[ ][4]={1,2,3,4,5,6,7,8,9,10,11,12};

	int i;
	for(i = 0; i < 3; ++i){
		printf("%d ", *(a[i]+1) );
	}
	
	printf("\n");

	for(i = 0; i < 3; ++i){
		printf("%d ", *(*(a + i)+1) );
	}

/*
int a[][4]={1,2,3,4,5,6,7,8,9,10,11,12};
indices =>  0,1,2,3,4,5,6,7,8, 9,10,11

L = linha, C = coluna, I = indice e V = valor

expressao    L x C  a[]	  I         V
*(a[0]+1) => 0 * 4 = 0 + 1 = 1, logo = 2
*(a[1]+1) => 1 * 4 = 4 + 1 = 5, logo = 6
*(a[2]+1) => 2 * 4 = 8 + 1 = 9, logo = 10


*/	
	printf("\n");

}

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *