Apontadores | ZWAME Fórum
Discussão em 'Programação' iniciada por minfm, 4 de Janeiro de 2007. (Respostas: 9; Visualizações: 1326)
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++
minfm disse: ↑
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.
Sem querer parecer gozo, por vezes um boneco ajuda bastante
Não é gozo, vê mesmo este clip
http://www.cs.stanford.edu/cslibrary/PointerFunC.avi
Isto também pode ajudar bastante
Já agora, devias ter feito uma pesquisa no fórum por apontadores, encontrei facilmente isto nessa pesquisa
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?
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.
hum... ja estou a perceber.
isto pode ser uma pergunta mesmo estupida mas por exemplo quando temos um:
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.
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)