Esiste, però, un caso in cui il risultato può sembrare incongruente: ad esempio, la valutazione di questa espressione, non è sempre falsa, come si può credere:
Nel caso in cui la variabile a sia diversa da 0 e da 1, le istruzioni verranno eseguite.codice:int a; if (a != !!a) { ... // Queste istruzioni possono essere eseguite }
Il perchè è semplice: se la variabile a vale, ad esempio, 15 il test viene valutato in questo modo:
Questo accade perchè l'operatore ! agisce in questo modo: il primo rende FALSO il valore 15 (quindi lo mette a 0), poi il secondo lo rimette a vero, ma questa volta diventa 1...codice:if (15 != 1) { ... // e viene eseguito. }
Quando A è diverso da NOT( NOT(A) )
Ciao.![]()




Rispondi quotando