|
C: x+++y, что будет вычислено? |
|
|
|
 |
Ответов
(1 - 10)
|
Apr 27 2015, 08:41
|

Местный
  
Группа: Участник
Сообщений: 329
Регистрация: 23-04-14
Пользователь №: 81 502

|
Цитата(ViKo @ Apr 27 2015, 09:26)  Нет явной однозначности выполнения: x++ + y x + ++y Получается, зависит от наличия-отсутствия пробелов. Непорядок. Или как? Ну, если делать нечего и лень ставить скобки, то читать тут: http://en.cppreference.com/w/c/language/operator_precedenceА лучше ставить скобки и голова болеть не будет.
|
|
|
|
|
Apr 27 2015, 10:42
|
Гуру
     
Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847

|
Цитата(ViKo @ Apr 27 2015, 12:38)  Я обращаю внимание на то, что иногда наличие или отсутствие пробелов имеет значение Имеет, но не - Цитата Нет явной однозначности выполнения однозначность как раз есть. И строки - Код x++ + y x + ++y просто разные. Вот очень яркий пример значимости пробела: Код std::vector<std::pair<std::string,std::string>> syntax_error; std::vector<std::pair<std::string,std::string> > Ok; 1я строка сломается при компиляции (но не в С++11), вторая прожуется без ошибок В С++11 на это дело сделали костыль (на уровне языка)
|
|
|
|
|
May 2 2015, 07:21
|
Гуру
     
Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713

|
Цитата(CrimsonPig @ Apr 27 2015, 16:18)  Девелопер, который пишет любой из вариантов кода: "x+ ++y" или "x+++y" подлежит побиванию камнями. А который пишет: x + ++y ? ;-) Цитата(CrimsonPig @ Apr 27 2015, 16:18)  На собеседованиях иногда могут задать подобный вопрос, но таких собеседователей лучше сразу посылать. Может эти собеседователи и ожидают , что Вы скажете "так писать недопустимо безотносительно того - работает это или нет, ибо 'стиль оформления и читаемость исходника'". А если начнёте думать и пытаться решить, то результат: "Вы не прошли собеседование". :-D
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|