2000 – 12

Sia definita la seguente funzione:

int cond(){ return cond(); }

Cosa succede all’istruzione

if((a > 0) && cond()) printf("ciao");

al variare di a?

Cosa succede all’istruzione

if(cond() && (a > 0)) printf("ciao");

al variare di a?


Soluzione:

  1. Se a <= 0 non fa nulla altrimenti si blocca
  2. Si blocca sempre

La chiamata alla funzione cond() porta al blocco dell’esecuzione per stack overflow perché chiama se stessa indefinitamente.

Nel primo caso, se a <= 0 allora non avviene la chiamata di cond().