Variablen:

A=2, B=4, C=5
M=3.5489f, N=2.2122f

Logische Operation:
(B!=C)||(A==3)

Mein "erdachtes" Ergebnis:
(B!=C)=1 (da wahr)
(A==3)=0 (da unwahr)
--> 1||0=1 (da eins von beiden wahr)

Der PC gibt allerdings hierfür "0" aus, wieso?

Logische Operation:
(A==(int)M==(int)--N)&&C


Mein "erdachtes" Ergebnis:
(int)M=3 (da alle weiteren Stellen einfach ignoriert werden)
A==(int)M=0 (bzw. 2=3 --> unwahr)
0==(int)--N=0 (bzw. 0=1 mit N=2-1 --> unwahr)
also 0&&C=0 (unwahr, da nicht beide ungleich 0)

Der PC gibt allerdings hierfür "1" aus, wieso?


Mein Prg:
Code:
#include <stdio.h>

int main (void)()
{
char A=2 ,B=4, C=5;
float M=3.5489f ,N=2.2122f;
char Erg=0;

Erg=(B!=C)||(A==3); printf ("%i\n", Erg); Erg=(A==(int)M==(int)--N)&&C; printf ("%i\n", Erg);
return 0; }