Apontadores

minfm

Membro
Olá, pessoal!
Como estão?

Eu sei que por aqui, será um pouco dificil explicarem-me, mas estou a fazer um trabalho de programação, no qual necessito de usar apontadores! Será que me podem dar uma breve explicação para que servem e como funcionam?
Uma outra pergunta só por curiosidade qual será o melhor compilador de C para trabalhar?
Eu estou a usar Dev C++

Cumprimentos
Boa noite!
 
Olá, pessoal!
Uma outra pergunta só por curiosidade qual será o melhor compilador de C para trabalhar?
Eu estou a usar Dev C++


DevC++ é excelente. Acho que deves continuar com esse...

Quanto aos apontadores, basicamente um apontador aponta para o endereço de uma variável. Se queremos lidar com o apontador mexemos com o apontador, se queremos lidar com a variável mexemos com o apontado.

O seguinte apontador aponta para uma posição de memória que te lá o número 12:
apontador ------------------> | 12 | (apontado)




Pá é dificil dizer com meias palavras. O melhor mesmo é não desistir e matar a cabeça a tentar perceber. Qundo perceberes bem até preferes usá-los. :D
 
eu ja percebi o que fazem os apontadores, so ainda nao estou a perceber é para que servem...


alguem me podia dar um exemplo simples de porque usar apontadores?


obrigado
 
Queres percorrer um vector, o que é melhor fisicamente? Copiares o objecto da posição corrente, guardares o índice onde ele se encontra e guardar estas mesmas informações sobre a posição que estás a analisar? (Imagina um algoritmo de ordenação)

Ou então algo que te apenas te aponte para essas ditas posições de forma que consigas tratar as mesmas sem teres de fazer redundância de informação?

Se não percebeste com este exemplo, imagina-o a uma larga escala e imagina um computador com pouca memória, talvez aí consigas notar algumas diferenças mais significativas ;)

Este é apenas um exemplo, existem muitos tipos de aplicação de apontadores bastante distintos entre si.

abraços, HecKel
 
hum... ja estou a perceber.

isto pode ser uma pergunta mesmo estupida mas por exemplo quando temos um:
scanf("%d", &opcao);

qual a vantagem de usar o endereço de opção (&opcao) e não apenas opção (opcao)?
 
Isso é porque necessitas de passar a variável "opcao" por referência para a função scanf lhe poder alterar o valor.
Basicamente, em vez de passares para a função scanf o conteúdo de "opcao", vais-lhe passar a localização de "opcao". Com a localização, o scanf também conseguiria saber o conteúdo da variável (se quisesse), mas além disso pode alterá-la. Se só passasses o valor da variável (ou seja, sem o &) ele não poderia alterar o seu conteúdo, logo, a leitura não funcionaria.
 
mas a opcao n seria uma variável vazia? o scanf ao ver o que escreves no teclado é que devia por nessa variável o valor que inseriste no teclado.

lol que confusao!
 
O scanf não mete nada na variável, mete no endereço de memória que corresponde à variável, daí passares como argumento a referência da variável.

Queres guardar algo na memória, logo, passas uma referência para um endereço de memória. A forma como vais trabalhar a seguir já não interessa muito para o caso.

abraços, HecKel
 
mas a opcao n seria uma variável vazia? o scanf ao ver o que escreves no teclado é que devia por nessa variável o valor que inseriste no teclado.

lol que confusao!


Exactamente, o parâmetro é uma variável. Não importa o que lá está dentro, logo não vais passar o seu valor, mas sim a sua localização. (se está vazia ou não não tem qualquer relevância)
 
Back
Topo