Assegnazione

di il
3 risposte

Assegnazione

Il programma mi stampa a=0 e b=3, come mai la b torna 3?
int main(){
  int a = -1;
  int b= 2;

  b+= a && a++;
  printf("%d %d\n", a, b);
}

3 Risposte

  • Re: Assegnazione

    Gli argomenti in ballo sono:
    - precedenza tra gli operatori;
    - differenza tra incremento suffisso e prefisso;
    - cast implicito da int a bool e viceversa;
    - valutazione a corto circuito delle espressioni logiche.

    Conosci bene i suddetti argomenti? Riesci a capire come intervengono tutti in quella breve espressione?
  • Re: Assegnazione

    laurentibus ha scritto:


    Il programma mi stampa a=0 e b=3, come mai la b torna 3?
    Hai provato ad esaminare tutte le parti dell'espressione e a darti una risposta da solo?
  • Re: Assegnazione

    Prova anche a confrontarla con l’istruzione
    a && ++a, con a = -1
Devi accedere o registrarti per scrivere nel forum
3 risposte