View Single Post
Old 23-06-2006, 12:41   #5
riva.dani
Senior Member
 
L'Avatar di riva.dani
 
Iscritto dal: Oct 2002
Messaggi: 3923
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....
__________________
Intel Core i5 4690K by Cooler Master Hyper 412S | ASRock Z97 Extreme4 | G.Skill Ares 2x4GB DDR3 1600 | MSI nVidia GTX 260 55nm | Samsung SSD 840EVO 250GB | Cooler Master Stacker | Corsair RM650x
riva.dani è offline   Rispondi citando il messaggio o parte di esso