Как с обрабатывать серии + -? - PullRequest
0 голосов
/ 11 октября 2019

Может кто-нибудь объяснить, как c обрабатывает серию + -? Например:

int x = 5, y = 8;

printf("%d\n", x-+-y); /* out: 13 */
printf("%d\n", x-+-+y); /* out: 13 */
printf("%d\n", x-+-+-y); /* out: -3 */
printf("%d\n", x+-+y); /* out: -3 */
printf("%d\n", x+-+-y); /* out: 13 */
printf("%d\n", x+-+-+y); /* out: 13 */

PS Я использую std = c90, поэтому ответьте для всех стандартов, если ответ отличается, пожалуйста.

1 Ответ

1 голос
/ 11 октября 2019

x - + - y

Это оценивается как x-(+(-y)).

x - + - + y

Это оценивается как x-(+(-(+y))).

x - + - + - y

Это оценивается как x-(+(-(+(-y)))).

x + - + y

Это оценивается как x+(-(+y)).

x + - + - y

Это оценивается как x+(-(+(-y))).

x + - + - + y

Это оценивается как x+(-(+(-(+y)))).


В этом случае нет одновременных последовательностей + или -, поэтому все + с или - с после начальных + или - являются одинарнымиоператоры.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...