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

Dúvida Interessante

Discussão em 'Programação' iniciada por acfryx, 13 de Janeiro de 2008. (Respostas: 1; Visualizações: 552)

  1. acfryx

    acfryx Power Member

    Estava eu a programar em C quando ao fazer o debugging de uma parte do código descobri que por exemplo:
    Código:
    int x = 68;
    int *var = &x;
    
    *var++ // é igual a ter: 
           // var++; 
           // *var = *var + 1
           // o que dá erro
    (*var)++ // já faz
             // *var = *var + 1
    
    Alguém fazia ideia disto?? Ou estarei a fazer alguma coisa mal??

    Cumprimentos...

    Mal acabei de escrever o POST pensei em ver a tabela de precedências dos operadores em C e verifiquei que o operador ++ está antes do operador * daí o "problema"...
     
    Última edição pelo moderador: 15 de Janeiro de 2008
  2. SL87

    SL87 Power Member

    Atenção:
    var++; -> Vais andar com o ponteiro 4 bytes para a frente. Provavelmente dá erro porque a memória não te pertence.
    (*var)++; -> vais incrementar o valor, no endereço apontado por var.
     
    Última edição: 14 de Janeiro de 2008

Partilhar esta Página