1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Apontadores

Discussão em 'Programação' iniciada por minfm, 4 de Janeiro de 2007. (Respostas: 9; Visualizações: 1242)

  1. 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!
     
  2. Hipnoted

    Hipnoted Power Member


    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
     
  3. HecKel

    HecKel The WORM

  4. Neo4

    Neo4 Banido

    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
     
  5. HecKel

    HecKel The WORM

    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
     
  6. Neo4

    Neo4 Banido

    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)?
     
  7. Warrior

    Warrior Power Member

    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.
     
  8. Neo4

    Neo4 Banido

    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!
     
  9. HecKel

    HecKel The WORM

    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
     
  10. Warrior

    Warrior Power Member


    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)
     

Partilhar esta Página