Grazie per il supporto ragazzi. Quell'espressione è tratta da un tema d'esame, dovrebbe essere una domandina stupida da mezzo punto.
Infatti nemmeno io capivo quel || 5, evidentemente è una specie di trabocchetto. Anch'io ho pensato che una costante diversa da 0 equivale a un'espressione vera, però in tal caso i conti non tornano.
Posto che (dato che il mio compilatore non fa storie) a=b equivale ad a==b (anche s enon è propriamente corretto).
Allora l'espressione in oggetto si risolve così:
a=b è falso
(
b>3 è vero
VERO || VERO = vero
)
Falso && Vero = Falso
Però compilando il codice
Codice:
int main (void)
{int a, b;
a=7; b=9;
printf("%d \n", (a = b) && ((b > 3) || 5));
}
viene stampato un bell'1...
Dov'è l'inghippo? Sbaglierò sicuramente io....