Jeśli pierwszeństwo w stosunku do & jest większe niż ||, nie powinno tego kodu oceniać --b & & ++ c pierwsze, a zatem wynik powinien wynosić 1 2 4 11. Ale tutaj to wydaje się być zwarty, aby dać 1 2 5 10. Proszę o pomoc!kolejność oceny || and && in c
int x;
int a=1,b=5,c=10;
x=a++||--b&&++c;
printf("%d %d %d %d\n",x,a,b,c);
return 0;
Skąd wiemy, kiedy umieścić nawiasy, a kiedy nie? – Ashwyn
@Ashwyn dobrą zasadą jest umieszczanie nawiasów wszędzie tam, gdzie intencje nie są jasne. W tym przypadku nie chodzi o klamry, IMO jest całkiem jasne, co się dzieje. –
@Ashwyn Myślę, że brakuje ci sensu. Masz rację, zakładając, że && jest ciaślej niż ||.Ale wyrażenie nadal ocenia od lewej do prawej. –