• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

suzy

porque?

6 mensagens neste tópico

porque é que este codigo da aquele valor?

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

3 2 1

9 8 7

:nono:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

?? Porque foi o que mandaste fazer no código!!

Não estou a ver o que pretendes.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

basicamente deve ser algo deste tipo:

o (*(*mat+i)+1) é igual a mat[1]

  - uma matriz ou um vector bidimensional

  - ora vê a parte de dentro *mat+i significa que queremos o valor para onde o ponteiro mat está a apontar na posição i, mas como o ponteiro tem "duas dimensões" a segunda parte (*(1ºparte)+1) indica que queremos a segunda posição (ou a posição 1).

e p *mat é igual a mat[0]

  - a mesma logica que a anterior mas como não indicamos a segunda posição ele assume a posição 0.

Eu pelo menos acho que é algo do género,

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora