Kolejność działań.

0

Witam. Mam pytanie odnośnie kolejności wykonywania działań w języku C. Dla przykładu mamy działanie :" p = p + q && n == 10; ". Chciałbym zapytać czy kolejność wygląda tak:
Najpierw działania algebraiczne
Później przyrównywania
A na końcu operatory logiczne z kolejnością:
1.negacja
2. &&
3 Na końcu ||
Pozdrawiam.

0

Ok dziękuję, ale dlaczego w przypadku tej pętli w języku C " for(a=1,b=2;b<=6;b+=2) a+= (b++ > 2) && (++a > 1); " postnkrementacja wykona się dla b, a zmienna a nie zmieni się za pierwszym razem skoro && jest po niej?

0

Czyli jak mam rozumieć jeżeli pierwszy warunek przy && jest niespełniony, to drugi nawet nie jest brany pod uwagę przez kompilator?

0

To też ( http://stackoverflow.com/questions/26281447/logical-in-c )

Ale ogólnie takie coś: a += ++a; to jest UB.

Mnie się wydaje, że ty mylisz dwie rzeczy.
++ to jest operator inkrementacji, on zmieni wartość zmiennej przy której stoi, np:

 int a = 5;
 ++a;
 // teraz a = 6.

To czego ci potrzeba to jest z tego co widzę zwykłe dodawanie.

Zamiast:

 for(a=1, b=2; b <= 6; b += 2)
   a += (b++ > 2) && (++a > 1);

tobie trzeba:

 for(a=1, b=2; b <= 6; b += 2)
   a += (b + 1 > 2) && (a + 1 > 1);

Cokolwiek by to robiło.

0

Ok dzięki wielkie za pomoc

1 użytkowników online, w tym zalogowanych: 0, gości: 1