in C/c++ se la valutazione di un'espressione porta ad un valore diverso da zero viene interpretata come true dalle istruzioni che si aspettano booleani (coem l'if) e coem false in caso contrario (cioè se la valutazione produce 0). Infatti occorre stare attenti quando si usa questa proprietà su esperssioni in virgola mobile perchè secondo l'espressione la valutazione potrebbe portare ad un numero molto prossimo allo zero (molto molto piccolo tipo 0,000000qualcosa) e ed essere comunque considerata un valore true perchè non è zero esatto.