2012-06-29 8 views
9

Можно создать дубликат:
Why doesn't a+++++b work in C?
3 Plus between two variables in cРазница между +++++ Ь и ++ + ++ б

Я попытался найти это, но не смог найти какой-либо Результаты.

Код с c=a+++++b не скомпилирован (gcc), тогда как для c=a++ + ++b он успешно компилируется. c=a+++ ++b также работает. c=a++ +++b не работает.

Почему здесь разница здесь? Или мне не хватает важной концепции C?

+8

не совсем уверен, почему это получает пустые голоса, так как id говорит о его совершенно правильном и хорошо структурированном вопросе. Тем, кого я боюсь, я не знаю ответа на это. –

+7

Хотелось бы узнать об этом ... почему он закрыт? – nullpotent

+2

Слишком много вопросов, как это уже на SO. Искать их – RedX

ответ

5

Поскольку ++ является маркером, анализатор интерпретирует a+++++b так же, как a ++ ++ + b, который не является такой же, как a ++ + ++ b!

+0

OP сказал, что 'a +++++ b' не скомпилируется. –

+0

Правильно, да, 'a ++ ++ + b' не компилируется, а' a ++ + ++ b' делает. Потому что 'a ++ ++ + b' не имеет никакого действительного значения. Или, как видит gcc, 'a ++' не является значением lvalue. –

+0

точный дубликат http://stackoverflow.com/questions/5341202/why-doesnt-ab-work-in-c/5677289#5677289 – RedX

Смежные вопросы