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;
}
Lesezeichen