operator-precedence

Dlaczego te konstrukcje używają niezdefiniowanego zachowania pre i post-increment?

#include <stdio.h> int main(void) { int i = 0; i = i++ + ++i; printf("%d\n", i); // 3 i = 1; i = (i++) ... 1 1 int x[2] = { 5, 8 }, y = 0; x[y] = y ++; printf("%d %d\n", x[0], x[1]); // shouldn't this print 0 8? or 5 0? }

Post-increment i pre-increment w pętli ' for ' dają to samo wyjście [duplikat]

to pytanie ma już odpowiedzi tutaj : ... %d", i); } for(i=0; i<5; ++i) { printf("%d", i); } Otrzymuję to samo wyjście dla obu pętli 'for'. Coś przeoczyłem?

Jakie są zasady kolejności ewaluacji w Javie?

Czytam tekst Javy i otrzymałem następujący kod: int[] a = {4,4}; int b = 1; a[b] = b = 0; W tekście autor nie podał jasnego wyjaśnienia, a efekt ostatniej linijki to: a[1] = 0; Nie jestem pewien, czy rozumiem: jak doszło do oceny?

Dlaczego (1 w [1,0] == True) ocenia się na False?

Kiedy patrzyłem na odpowiedzi na to pytanie , stwierdziłem, że nie rozumiem własnej odpowiedzi. Nie bardzo rozumiem, jak to ... dwóch (co prawda błędnych) możliwych interpretacji, tylko jedna wydaje się możliwa: {]} >>> (1 in [1,0]) == True

Dlaczego x == (X = y) nie jest tym samym co (x = y) = = x?

Rozważ następujący przykład: class Quirky { public static void main(String[] args) { int x = 1; int y = ... = y; return oldX == y; Które, będąc jeszcze prostsze niż instrukcja x86 CMPXCHG, zasługiwało na krótsze wyrażenie w Javie.

Dlaczego (1 w [1,0] == True) ocenia się na False? [duplikat]

To pytanie ma już odpowiedź tutaj: dlaczego wyrażenie 0 9 odpowi ... dwóch (co prawda błędnych) możliwych interpretacji, tylko jedna wydaje się możliwa: {]} >>> (1 in [1,0]) == True

Pierwszeństwo operatora z operatorem trójdzielnym Javascript

Wydaje mi się, że nie mogę zawinąć głowy wokół pierwszej części tego kodu ( + = ) w połączeniu z operatorem trójdzielnym. h. ... Ale to nie jest poprawne, ponieważ to daje błąd w mojej konsoli. Więc moje pytanie brzmi jak poprawnie interpetować ten kod?

Operator logiki SQL: And and Or

Czy poniższe dwa stwierdzenia są równoważne? SELECT [...] FROM [...] WHERE some_col in (1,2,3,4,5) AND some_other_expr I ... in (1,2,3) or some_col in (4,5) AND some_other_expr Czy jest jakaś tabela prawdy, której mógłbym użyć, aby to zweryfikować?

Czy ten kod z" The C++ Programming Language " 4th edition sekcja 36.3.6 ma dobrze zdefiniowane zachowanie?

W Bjarne Stroustrup ' S język programowania C++ sekcja IV edycji 36.3.6 operacje podobne do STL poniższy kod jest używany j ... prawidłowo oceniają wyrażenie łańcuchowe, czy ten kod wykazuje jakąś formę nieokreślonego lub niezdefiniowanego zachowania ?

Dlaczego w Pythonie 0, 0 == (0, 0) equals (0, False)

W Pythonie (sprawdzałem tylko z Pythonem 3.6, ale uważam, że powinien się utrzymać dla wielu poprzednich wersji): (0, 0) == ... n a boolean True Dlaczego wyniki różnią się między tymi dwoma podejściami? Czy operator równości inaczej obsługuje krotki?

Pierwszeństwo operatora a kolejność oceny

Terminy "pierwszeństwo operatora" i "kolejność oceny" są bardzo często używanymi terminami w programowaniu i są niezwykle waż ... dla którego zamieściłem to pytanie, jest to, że zamieszanie wywołane w moim umyśle przez artykuł MSDN. Czy to błąd czy nie?

Post-increment na dereferenced pointer?

Próbując zrozumieć zachowanie wskaźników w C, byłem trochę zaskoczony poniższym (przykładowy kod poniżej): #include <std ... ar_ptr++ twierdzenie w drugiej funkcji (add_one_v2), ponieważ wyraźnie nie jest to to samo co *our_var_ptr = *our_var_ptr +1?

Dlaczego $a + ++ $ a = = 2?

Jeśli spróbuję tego: $a = 0; echo $a + ++$a, PHP_EOL; echo $a; I get this output: 2 1 Demo: http://codepad.org/n ... echo $a + ++$a, PHP_EOL; // (0) + (0+1) === 1 echo $a; // a === 1 Ale dlaczego nie jest to wyjście?

Jakie są gwarancje zlecenia ewaluacji wprowadzone przez C++17?

Jakie są konsekwencje głosowania w C++17 (P0145) na typowy kod C++? Co to zmienia w takich rzeczach jak i=1; f(i++, i) I std::cout << f() << f() << f() ; Lub f(g(),h(),j());

Dlaczego operator trójdzielny z przecinkami ocenia tylko jedno wyrażenie w przypadku rzeczywistym?

Obecnie uczę się C++ z książką C++ Primer i jednym z ćwiczeń w książce jest:]} Wyjaśnij, co robi następujące wyrażenie: ... do umieszczania nawiasów wokół gałęzi true w ten sposób: someValue ? (++x, ++y) : --x, --y; Ale to wciąż wyniki w 11 10.

Arytmetyka wskaźnika: ++ * ptr czy * ptr++?

Uczę się języka C i dość pogmatwałem różnice między ++*ptr i *ptr++. Na przykład: int x = 19; int *ptr = &x; Wiem ++*ptr i *ptr++ dają różne wyniki, ale nie jestem pewien, dlaczego tak jest?

Pierwszeństwo operatora w Scali

Podoba mi się propozycja pierwszeństwa operatora Scali, ale w niektórych rzadkich przypadkach niezmodyfikowane reguły mogą by ... ieją sposoby definiowania innych reguł dla klasy / pliku, itp. w Scali? Jeśli nie, czy zostanie ona rozwiązana w przyszłości?

Pierwszeństwo i operacje na maskach bitowych

Natknąłem się na (pozornie) bardzo dziwny przypadek. Weź liczbę 2 (0b10) i bitmaskuj ją za pomocą 1 (0b01) To powinno wytwo ... - więc może gdzieś się pomyliłem? Jednak w Pythonie: 0b10 & 0b01 == 0 = True 0b10 & 0b01 != 0 = False ...więc?

Ciekawy wynik ćwiczenia z rozmowy kwalifikacyjnej: return, post increment i ref behavior [duplicate]

To pytanie ma już odpowiedź tutaj: Po przyroście w ramach samodzielnego zadania ... zy ktoś może wyjaśnić ten przykład i dlaczego podczas debugowania widzę, że wartość jest zwiększana do 1, a potem wraca do 0?

Jak Mogę włączyć operatory trójdzielne do algorytmu wspinaczki?

Zastosowałem się do wyjaśnienia podanego w sekcji "prefiks Climbing" na tej stronie, aby zaimplementować ewaluator arytmetyc ... " | "-" | "*" |"/" | "^" | "||" | "&&" | "=" U --> "-" Jak mogę włączyć operatory trójdzielne do tej gramatyki?