Przez jakiś czas używałem SO jako punktu odniesienia, ale nigdy wcześniej nie zadawałem pytania. Jestem obecnie w college'u w klasie C++ i czytam także Bjarne Stroutstrup dla Bjarne Stroutstrup tylko dla mojej własnej korzyści, gdy zobaczyłem odpowiedź na pytanie, które naprawdę ją poleciło.Jakieś pomieszanie z działaniem przecinków w C/C++
W tej chwili obejmujemy operatorów w mojej klasie i po prostu nie mogę się zorientować, jak działa operator przecinków w oświadczeniu. Jednym z przykładów jest przykładowe pytanie dotyczące części online tej klasy, która ciągle się mylę, nawet jeśli piszę program C i używam GDB, aby uzyskać wynik. Pytanie brzmi:
Przyjmując x == 16 przed następującym wyrażeniem, jaka jest wartość następującego wyrażenia (niekoniecznie wartość x)?
x ++, ++ x, x = x +
Nie jestem zainteresowany w prawidłowej odpowiedzi tyle, jak uzyskać prawidłową odpowiedź. Przeczytałem kilka odpowiedzi na podobne pytania, takie jak ta here, ale wydaje mi się, że brakuje mi tego, jak to ma zastosowanie, gdy w rzeczywistości nie ma operatora przypisania. Jest to tak samo jak powiedzenie
int y = (x++, ++x, x+=x);
lub
int y = x++, ++x, x+=x;
czy nie? Czy ktoś mógłby wyjaśnić, w jaki sposób działa operator przecinka, w szczególności w odniesieniu do oświadczenia bez zlecenia?
@SouravGhosh Nie, operator przecinka wprowadza punkt sekwencji między operandami. Wyrażenia są sekwencjonowane od lewej do prawej. – juanchopanza
@KeithThompson Dziękuję panu za poprawienie mnie. –
@juanchopanza Panie, jakoś przeoczyłem rozdział 6.5.17. Przepraszam za to. Poprawiono mnie. –