Dzień dobry,
po raz kolejny mam problem z wartościami zmiennych.
Mam taki kod:
int a = 0, b=5, c=3;
if (a = 0)
c = 4;
else
b = 1;
printf("%d %d %d\n", a, b, c);
a = 5, b=0, c=1;
if(b=2)
c = a++ & b;
else
a=4;
b = a && b;
printf("%d %d %d", a, b, c);
Nie rozumiem o co tutaj chodzi. Sprawdziłem debuggerem jak program postępuje.
Jeżeli popatrzymy na linijki do pierwszego printfa, to program leci tak:
1. Przeskakuje do a=0
2. Przeskakuje do b=1
3. Wypisuje
Później patrzymy na kolejne działania
1. Przeskakuje do b=2
2. Przeskakuje do c=a++&b;
3. Omija całego elsa
4. Przeskakuje do b=a&&b;
5. Wypisuje
Może mi ktoś wytłumaczyć dlaczego tak się dzieje? Wiem, ze tam nie ma przyrównania tylko jest przypisanie, to dlaczego program raz omija elsa, raz bierze go pod uwage...
Pozdrawiam