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

[C] Diferença entre "->" e "="

Discussão em 'Programação' iniciada por fabio.silva, 18 de Fevereiro de 2009. (Respostas: 10; Visualizações: 1174)

  1. fabio.silva

    fabio.silva Power Member

    Cumps,
    Alguém sabe a verdadeira diferença entre o sinal de atribuição "->" e "=" ? Por exemplo, é diferente escrever "x=3" ou "3->x" ?
    Bgd
     
  2. mrjm

    mrjm Power Member

    Deves estar a fazer um pouco de confusao o que existe é o sinal de atribuição que é o =
    X=3 ou seja a variavel X vai tomar o valor 3
    Existe o simbolo de igual que é o ==... será isso?
     
  3. Kayvlim

    Kayvlim Undefined Moderator
    Staff Member

    O "->" não é sinal de atribuição. Acho que é do C++, e está relacionado com objectos. Não estarás a confundir com TI-BASIC, em que fazes "valor->variável"? ;)
     
  4. arpinacio

    arpinacio Power Member

    o -> é, se não estou em erro um apontador para memória...

    int x;

    int y -> x;

    se x mudar, y também muda ao invés de

    int y = x;

    onde y tomaria o valor de x...
     
  5. PJTuga

    PJTuga Power Member

    tal como o arpinacio disse, o -> usa-se quando se trabalha com apontadores em C++


    Carro x;
    x.matricula;
    x é um objecto do tipo Carro...

    Carro* y;
    y->matricula;
    (*y).matricula;

    y contem um endereço de um objecto do tipo Carro
     
    Última edição: 19 de Fevereiro de 2009
  6. rj.rodrigues

    rj.rodrigues Power Member

    Exactamente como o arpinacio e o PJTuga disseram. Se bem me lembro também é usado em C que era o que era pedido no tópico.
     
  7. Ronnie_03

    Ronnie_03 Power Member

    Também acho que sim, porque para além de ser usado com objectos, pode ser usado com estruturas (struct), para apontadores claro.

    Cumps
     
  8. OubeLa

    OubeLa Power Member

    É a mesma coisa em C ou C++, a única diferença é que em C não há classes, mas pode haver estruturas.

    Código:
    struct
    {
         float x;
         float y;
         float z;
    } Ponto;
    
    Ponto *ponto;
    
    //atribuir um valor a x
    ponto->x = 1.5;
    
    //receber o valor de z
    float z_aux = ponto->z;
     
  9. Granadafeup

    Granadafeup Power Member

    Fica aqui um link com os vários operadores de default em C(++)

    Link
     
  10. raVemjr

    raVemjr I'm cool cuz I Fold

    Exacto, não é restrito a C++. É aplicável em C a estruturas de dados, embora haja quem prefira usar, quando aplicável o "*(ponteiro).campo" (em vez de ponteiro->campo)
     
  11. fabio.silva

    fabio.silva Power Member

    Lol, não, eu tinha quase a certeza que era usado o "->" em C ;)
    Bom,a resposta é dada em baixo ;):


    Obrigado a todos, estamos sempre a aprender:x2:
     

Partilhar esta Página