0 wird in C und C++ wie false behandelt. Alles andere wirkt wie true. Dementsprechend können auch ints und longs negiert werden. Der !-Operator macht im wesentlichen folgendes:
Code:
{ 1 wenn a = 0 !a = { { 0 sonst
-- Einfachheit ist Voraussetzung für Zuverlässigkeit. -- Edsger Wybe DijkstraDieser Post wurde am 31.08.2003 um 11:37 Uhr von 0xdeadbeef editiert.
Allerdings ist es in der Regel schlechter Programmierstil, ! auf nicht-boolsche Werte anzuwenden. Ausdrücke wie
C++:
b += !!a;
sind doch deutlich weniger lesbar als
C++:
if(a != 0) ++b;
In C gibt es keinen eigenen Datentyp für bool, deswegen ist es da ein manchmal Interpretationssache, wann ein Wert boolsch ist. Als Faustregel gilt: ! kann man da gut anwenden, wo man es auch mit && und || kann. -- Einfachheit ist Voraussetzung für Zuverlässigkeit. -- Edsger Wybe Dijkstra