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

ponteiros em c

Discussão em 'Programação' iniciada por caprr, 9 de Abril de 2004. (Respostas: 3; Visualizações: 1328)

  1. caprr

    caprr Power Member

    viva


    estava aqui a fazer um programazito quando me deparo com uma situação nova para mim:


    ...
    /* inicio do corpo principal*/
    ...
    verifica(..., &cons, ...);

    /*fim do programa*/


    /*declaraçao de funcoes*/

    int verifica( ..., *cons,....)
    {
    for (...)
    {
    if(...)
    {
    *cons++; /*variavel q vai incrementar uma unidade se o q esta dentro do ciclo if se verificar*/
    }
    .....
    }
    ..........
    }




    A MINHA DUVIDA é porque é que eu nao posso utilizar o operador ++ no cons( que é um ponteiro para um inteiro),

    eu resolvi a situação utilizando o seguinte codigo--> *cons=*cons+1;
     
  2. caprr

    caprr Power Member

    viva

    vao-me desculpar mas nao me expliquei bem, e ainda mais para ajudar eu nao posso por aqui o programa, pois tenho-o numa outra maquina na qual nao tenho o mount da disquete operacional( logo nao grava), o cdr esta pifado :004: :004: ....

    em relação ao problema acima:
    se na declaração da funçao verifica antes de usar o *cons++ eu lhe atribuir o valor zero( *cons=0), ele continua na mesma com problemas...
    caso eu nao faça esta atribuição, esta variavel tera um endereço ( algo do genero( 0Fx....) mas se eu atribuir-lhe o valor de zero o porque é que nao adiciona uma unidade ao valor que lhe está atribuido( cons++)???

    por exemplo numa string ( pexplo: S[MAX])
    se
    declarar um ponteiro para char
    char *p;
    p=S;
    p++;/*equivale a for(i=o;...;i++) S=....*/

    esta atribuição ja é valida, pois ele avança para o proximo elemento da string
     
  3. fap

    fap Power Member

    o operador ++ tem a mesma precedência que o operador * mas a associatividade dos mesmos é feita da direita para a esquerda por isso ele vai fazer
    const++ e só depois é que acede à zona de memória...tenta fazer (*const)++;
     
  4. caprr

    caprr Power Member

    viva


    situação resolvida....
    essa situação da precedencia nem sequer me passou pela cabeça :lol: :lol: :lol:


    obrigado fap
     

Partilhar esta Página