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?
- 1
- 2