Logisches UND  ODER und NOT



Logisches UND (AND)

Das logische UND wird mit  && beschrieben und ist wahr (1), wenn beide Operanden ungleich 0 sind, ansonsten ist das Ergebnis falsch (0).

Beispiel:

	/* in beiden Fällen ergibt sich TRUE (1) */

	if (4 && 5) return();

	i=3;
	j=2;
	return( i && j);

Hinweis: In C wird nicht garantiert, daß ein Ausdruck in jedem Fall vollständig ausgewertet wird Vielmehr reicht es, wenn ein Ausdruck ein Ergebnis liefert, man nennt das 'lazy evaluation'.  Bezogen auf einen Ausdruck mit && bedeutet das,  daß ein Ausdruck nicht weiter bearbeitet werden muß, wenn schon der erste Operand false ist, da das Ergebnis in jedem Fall false wird.

Beispiel:

	k=0;
	i=3;
	j=2;
	if ( i-i && j++) k=1

Der erste Term  (i-i) wird  0 (also falsch), deshalb wird  j nicht mehr erhöht und k bleibt unverändert.


Logisches ODER (OR)

 

Das logische ODER wird mit  ||  beschrieben und ist wahr (1), wenn mindestens einer der Operanden ungleich 0 ist, ansonsten ist das Ergebnis falsch (0).

Beispiel:

	k=0;
	i=3;
	j=2;
        if ( j==2) || (k==7)    ...
	if ( i+i && j++) k=1    /* lazy evaluation möglich!! */

Hinweis: Die Bemerkung zur Auswertung von Ausdrücken gilt sinngemäß auch hier. Liefert der erste Term 'wahr', wird der zweite u.U. nicht mehr ausgewertet.


Negation (logisches NOT)

Die Negation mit ! kehrt einen logischen Ausdruck in sein Gegenteil um.

Wenn ein Operand 0 ist, wird 1 zurückgegeben und umgekehrt wird eine 1 zurückgegeben, wenn der Operand 0 war.

	!4	/* Returns 0	*/
	!-4	/* Returns 0	*/
	!1	/* Returns 0	*/
	!0	/* Returns 1	*/

Anfang Hauptindex Schlüsselwörter Funktionen

Übers.: G. Junghanns