Ponteiros podem ser tão complicados quanto o final de Evangelion, mas com a prática eles deixam de serem difíceis ヽ(*・ω・)ノ
Recomendação de anime: Neon Genesis Evangelion (1995)
Exemplo
Digamos que três amigos - Shinji, Asuka e Rei - tenham telefones e endereços diferentes. Dessa forma teremos:
Assim, falar da Asuka é a mesma coisa que falar do seu telefone 1234. Falar da Rei é a mesma coisa que falar do seu telefone 3452 e falar do Shinji é a mesma coisa que falar do seu telefone 7863. Logo:
- Asuka = 1234;
- Rei = 3452;
- Shinji = 7863;
- int a = 1234, r = 3452, r = 7863;
Visualmente seria algo como:
Se fosse em C e quisermos imprimir o telefone de cada um faríamos o seguinte:
- printf("%d", Shinji) ⇒ 7863
- printf("%d", Asuka) ⇒ 1234
- printf("%d", Rei) ⇒ 3452
E caso quisermos imprimir o endereço faríamos isto:
- printf("%s", &Shinji) ⇒ Rua Japão
- printf("%s", &Asuka) ⇒ Rua Alemanha
- printf("%s", &Rei) ⇒ Avenida Nerv
Para indicar o endereço de uma variável usamos o operador &
Digamos agora que entre outra pessoa no grupo de amigos. Ela se chama Misato. Misato está morando mais perto do trabalho, mas ainda não conseguiu um telefone e por isso está utilizando o telefone de Shinji. Visualmente ficaria:
Dessa forma o telefone de Misato é o endereço de Shinji. Em C ficaria:
- Misato = &Shinji;
E se quisermos ver o telefone em si, usamos o operador * (*Misato tem o valor de 7863).
O operador * significa apontado por, ou seja, o endereço de Shinji (&Shinji) aponta para o telefone 7863.
Caso Misato quisesse passar a utilizar o número de Asuka, faríamos o seguinte:
- Misato = &Asuka;
- Misato = Rua Alemanha (valor de Misato);
- &Misato = Rua do Amor (endereço de Misato);
- *Misato = 1234 (o que Misato aponta)
Referências:
- Linguagem C - Luís Damas, editora LTC - 10ª Edição





Nenhum comentário:
Postar um comentário