Seite 1 von 1

Ausdrücke : a==0 und !a

Verfasst: So Dez 07, 2014 6:36 pm
von harun
Hallo Leute,

habe ne kurze Frage an euch unszwar möchte ich wissen ob die Ausdrücke in C a==0 und !a immer zum selben Ergebnis kommen? a sei ein Integer.

Danke im Voraus

gruß harry

Re: Ausdrücke : a==0 und !a

Verfasst: So Dez 07, 2014 6:40 pm
von Architekt
!a ist vergleichbar mit a <= 0, denn alle Werte die 0 oder negativ sind ergeben mit dem Not-Operator (!) true.

EDIT dani93: weiterlesen!

Re: Ausdrücke : a==0 und !a

Verfasst: So Dez 07, 2014 6:49 pm
von harun
Architekt hat geschrieben:!a ist vergleichbar mit a <= 0, denn alle Werte die 0 oder negativ sind ergeben mit dem Not-Operator (!) true.
Danke für die schnelle Antwort!

Sprich die Aussage "a==0 ist vergleichbar mit !a" ist nicht richtig.

Schönen Abend noch

Re: Ausdrücke : a==0 und !a

Verfasst: So Dez 07, 2014 7:00 pm
von mfro
Das ist - mit Verlaub - falsch und ein sehr gutes Beispiel dafür, daß man seine Hausaufgaben am besten selber macht...

Re: Ausdrücke : a==0 und !a

Verfasst: So Dez 07, 2014 8:30 pm
von Architekt
mfro hat geschrieben:Das ist - mit Verlaub - falsch und ein sehr gutes Beispiel dafür, daß man seine Hausaufgaben am besten selber macht...
Ich dachte ernsthaft, dass er es kontrollieren und hinterfragen würde... Am besten ich editiere mal den Beitrag entsprechend.

edit: Oh, alte Beiträge kann man nicht editieren? Das ist jetzt doof... :D

Re: Ausdrücke : a==0 und !a

Verfasst: Di Dez 09, 2014 1:24 pm
von Xin
Architekt hat geschrieben:
mfro hat geschrieben:Das ist - mit Verlaub - falsch und ein sehr gutes Beispiel dafür, daß man seine Hausaufgaben am besten selber macht...
Ich dachte ernsthaft, dass er es kontrollieren und hinterfragen würde... Am besten ich editiere mal den Beitrag entsprechend.

edit: Oh, alte Beiträge kann man nicht editieren? Das ist jetzt doof... :D
Man kann Beiträge genau 60 Minuten lang editieren, um Rechtschreibfehler oder ähnliches zu korrigieren. Danach musst Du Dich an einen Moderator wenden, damit der Verlauf der Diskussion nicht nachträglich verändert wird.


Bei Primitiven (int, double, Zeiger) bedeutet !var das gleiche wie var == 0, wie var das gleiche bedeutet wie var != 0. Ein Wert ist true, wenn er nicht 0 ist. Ein Wert, der nicht nicht 0 ist, muss also 0 sein.

Bei Klassen können operator ==() und operator bool()= -Operator überladen werden und ein Vergleich mit 0 gar nicht vorgesehen sein. Ein "unbestimmtes Bool" kann beispielsweise true, false oder auch unentschieden sein. So dass if( mybool ) im else-Zweig landet, aber if( !mybool ) deswegen noch lange nicht im then-Zweig ankommt: Ganz einfach, weil mybool weder true noch false, sondern unentschieden ist.

Re: Ausdrücke : a==0 und !a

Verfasst: Di Dez 09, 2014 2:11 pm
von Nemo
Xin hat geschrieben:Ein Wert ist true, wenn er nicht 0 ist. Ein Wert, der nicht nicht 0 ist, muss also 0 sein.
Das ist aber auch ein schwieriges thema ;)

Re: Ausdrücke : a==0 und !a

Verfasst: Di Dez 09, 2014 2:58 pm
von Xin
Nemo hat geschrieben:
Xin hat geschrieben:Ein Wert ist true, wenn er nicht 0 ist. Ein Wert, der nicht nicht 0 ist, muss also 0 sein.
Das ist aber auch ein schwieriges thema ;)
Eigentlich ist es ganz einfach... aber ich erinnere mich daran, dass ich auch mehrere Tage brauchte, um das zu verinnerlichen, als ich damals C lernte.

Darum beschreibe ich das im Tutorial auch entsprechend ausführlich.