hi, ich sollte mal ganz schnell beantwortet haben, wie der genaue laut dieses syntaxes ist if (!variable) ist die Bedingung erfüllt wenn die variable ungleich "1" ist, wenn sie genau "0" ist oder etwas ganz anderes!? Danke für die (wohl recht einfache) antwort!
einzig und allein dann? - dachte eigentlich dass if (!variable) das gleiche wie if (variable != 1) ist!? Deiner aussage nach ist es aber if (variable == 0) richtig?
Aus dem Standard: > The result of the logical negation operator ! is 0 if the value of its > operand compares unequal to 0, 1 if the value of its operand compares equal > to 0. The result has type int. > The expression !E is equivalent to (0==E).
vorweg: in C gilt: alles was 0 ist, ist logisch falsch alles was ungleich 0 ist, ist logisch wahr if( expr ) ist daher die vereinfachte Schreibweise für if( expr != 0 ) Der ! Operator ist die logische Negierung er macht aus logisch falsch ein logisch wahr und umgekehrt aus if( !expr ) wird daher if( !( expr != 0 ) ) wird die Negierung in die Klammer hineingezogen, ergibt sich if( expr == 0 )
okay, wunderbar - Danke! würdest Du mir bitte die Quelle verraten wo Du das her hast? - da könnte ich vielleicht noch das eine oder andere dazu lernen! Danke und Grüße
Das, mein Herr, sollte eigentlich in jedem noch so grindigen Lehrbuch über die Programmierung in C drinnen stehen. Das sind sozusagen Grundlagen. Konkret hat Arc Net ja auch dazugeschrieben, wo er das Zitat her hat: AUs dem C-Standard, einem ISO-Dokument, welches definiert, was C ist.
http://www.open-std.org/jtc1/sc22/wg14/www/standards bzw. http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1124.pdf
Dat ist nicht nur C bezogen, sondern dürfte auf alle Hochsprachen mit "IF" zutreffen ....
Nein, das ist wirklich C bezogen. "Saubere" Hochsprachen wie z.B. Pascal erwarten bei if einen boolean-Wert, also true oder false.
Genau das tut C auch - "false" ist 0 und "true" ist alles, was nicht 0 ist. Wüsste nicht, was daran jetzt "unsauber" sein soll.
Das tut C nicht. C kennt keine eindeutigen Boolean Werte. Und die Aussage, dass "True" alles ist was nicht Null ist, zeigt das doch recht eindeutig.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.