Ich vermute mal, dass in i true oder false steht? Wenn ja, sorgt !i bei true für false und bei false für true. Oder anders: nur, wenn i false ist, wird das if ausgeführt. -- Simon
Nein das muss kein true oder false gewesen sein, bool ist ja nur eine abbildung von Zahlen auf true oder false, also 0 = false und > 0 ist true. C/C++ ist da nicht so restriktiv, weswegen man auch gleich Zahlen benutzen kann um Wahrheitswerte darzustellen. Und das ! ist ein einstelliger Operator.
! ist der negations-operator: 0 == true/1, alles ungleich 0 wird false/0
ein if(!variable) heißt also im endeffekt u.A: if(variable == 0) bzw if(variable == false) genauso wie if(variable) if(variable != 0) bzw if(variable == true) bedeutet. -- class God : public ChuckNorris { };