Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> What does this code print? 
:(
    Опции темы
Thunderbolt
Дата 10.9.2012, 14:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


DevRel
*


Профиль
Группа: Участник
Сообщений: 122
Регистрация: 7.11.2007
Где: Тула

Репутация: 6
Всего: 16



В одном из проектов нашёл забавный фрагмент кода, содержащий ошибку. На эту ошибку обратил внимание анализатор PVS-Studio. Но я вначале ему не поверил. Мне показалось, что анализатор ошибся и уже подумал о том, чтобы запустить отладчик. Присмотрелся чуть внимательнее. А нет, действительно ошибка!

Я немного изменил код и, используя ICQ, отослал пример четырём знакомым программистам. И попросил написать, что напечатает код приведённый ниже. Все четверо дали вначале неправильные ответы.

Предлагаю попробовать, сможете ли вы дать правильный ответ. Что печатает на экране этот код? 

Код
cout << (sizeof(char *) == 8) ? "64-bit" : "32-bit";


Ответ здесь: http://www.viva64.com/ru/b/0162/



--------------------
Карпов Андрей, DevRel в PVS-Studio.
PM MAIL WWW   Вверх
boostcoder
Дата 10.9.2012, 14:46 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 20
Всего: 110



зависит от архитектуры, если я ничего не напутал.

Добавлено через 1 минуту и 46 секунд
ну да, ошибся smile 
именно поэтому я заключаю тернарки в круглые скобки.

PM WWW   Вверх
azesmcar
Дата 10.9.2012, 14:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 52
Всего: 211



должно быть true или false.
PM   Вверх
bsa
Дата 10.9.2012, 16:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



azesmcar, точнее, 0 или 1.
boostcoder, тоже не нравится эта особенность тернарного оператора. И я тоже автоматически его заключаю в скобки, если с результатом производятся какие-либо действия, кроме присваивания.
PM   Вверх
azesmcar
Дата 10.9.2012, 16:44 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 52
Всего: 211



Это не особенность тернарного оператора, это особенность оператора <<, приоритет которого рассчитан на применение в битовых операциях.

Цитата(bsa @  10.9.2012,  16:38 Найти цитируемый пост)
azesmcar, точнее, 0 или 1.

а, ну да.
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0487 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.