Кто-нибудь может объяснить мне:Присваивание и оператор запятая
int a, b, c, d;
a = 2;
b = 4;
c = a, b;
d = (a, b);
c == 2
Почему и d == 4
???
Кто-нибудь может объяснить мне:Присваивание и оператор запятая
int a, b, c, d;
a = 2;
b = 4;
c = a, b;
d = (a, b);
c == 2
Почему и d == 4
???
Два утверждения оба оценены как
c = a;
d = b;
из-за того, каким образом запятой оператор (который имеет самый низкий приоритет любого оператора) работает в C и C++.
Для первого, сначала оценивается c = a
(как =
имеет более высокий приоритет, чем оператор запятой), затем оценивается b
(который является не-оператором). Полное выражение имеет значение b
, но это никому не присвоено.
Для d = (a, b);
, (a, b)
сначала оценивается по скобкам. Это значение имеет значение b
и присвоено d
.
ОК, спасибо^_^ –
@ TrầnHồngPhát - Вы должны принять этот ответ, так как он вам помог, и это место. – StoryTeller
Не публикуйте код и не получайте изображения, это PITA, чтобы видеть на мобильных устройствах, а также попробовать свой код в компиляторе. -1, пока вы его не исправите. –
ОК, Так жаль об этом. –
Downvote втянута. – Bathsheba