31 / 34 / 18
Регистрация: 30.09.2011
Сообщений: 202

UB и логические операторы

17.02.2016, 12:32. Показов 1722. Ответов 28
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Является ли следующее выражение UB????

C++
1
ptr != 0 && *ptr++
нужно рассмотреть 2 варианта:
1) ptr - нулевой указатель
2) ptr не нулевой указатель

Насколько я понял:
1) В логическом оператора && всегда первым обрабатывается первый операнд, следовательно общее значение выражения false (второй операнд даже не рассматривался)
2) Рассматривается первый операнд - значение true, идем к второму оператору и это не UB, так как второй операнд не влияет на первый (его значение мы уже рассмотрели)
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
17.02.2016, 12:32
Ответы с готовыми решениями:

Определить и вывести количество дней между двумя датами (логические операторы и операторы ветвлений)
Задачка Пользователь вводит две даты (день, месяц, год в виде целых чисел). Необходимо определить и вывести количество дней между этими...

Записать логические выражения, используя условные операторы, операции отношений и логические операции
Записать логические выражения, используя условные операторы, операции отношений и логические операции алгоритмического языка ...

Операторы отношений и логические операторы
Всем добрый день. Очередной день изучения Г.Шилда С++ базовый курс, дошел до Операторов отношений, все понял, но не компилируется данный...

28
17.02.2016, 17:19
Студворк — интернет-сервис помощи студентам

Не по теме:

Цитата Сообщение от Tulosba Посмотреть сообщение
Представим, что класс S из моего примера это "умный" (пусть и недостаточно) указатель
умный указатель, это же не указатель :)

0
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
17.02.2016, 17:19
Цитата Сообщение от Kastaneda Посмотреть сообщение
вот так же надо
Да-да. И можно ещё результат сравнения на истину проверить, а потом проверить результат сравнения на истину на истину ...
C++
1
if((static_cast<bool>(s) == true) == true)
1
Игогошка!
 Аватар для ct0r
1801 / 708 / 44
Регистрация: 19.08.2012
Сообщений: 1,367
17.02.2016, 17:38
Babysitter,
A zero value, null pointer value, or null member pointer value is converted to false; any other value is converted to true.
Однако я всегда пишу nullptr - сразу видно, что это указатель, а не что-то еще.
1
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
17.02.2016, 17:43
Цитата Сообщение от ct0r Посмотреть сообщение
я всегда пишу nullptr - сразу видно, что это указатель, а не что-то еще.
Как-то так?) if( (static_cast<bool>(ptr) == true) != nullptr )
0
Игогошка!
 Аватар для ct0r
1801 / 708 / 44
Регистрация: 19.08.2012
Сообщений: 1,367
17.02.2016, 17:49
rikimaru2013, не, вот так:
C++
1
2
3
4
if (wtf != nullptr) {
  if (wtf != nullptr) {
    // wtf != nullptr, 200%
    ...
0
Неэпический
 Аватар для Croessmah
18149 / 10731 / 2067
Регистрация: 27.09.2012
Сообщений: 27,038
Записей в блоге: 1
17.02.2016, 17:50
Цитата Сообщение от ct0r Посмотреть сообщение
wtf != nullptr, 200%
не факт, если другой поток вклинится
0
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
17.02.2016, 17:54
Шутки шутками, но я видел такое:
C++
1
2
3
4
5
6
7
bool foo(some* ptr)
{
    if( ptr->getE() )
        return true;
    else
        return false;
}
Мой психиатр говорит, что я должен отпустить это и просто забыть.
0
Игогошка!
 Аватар для ct0r
1801 / 708 / 44
Регистрация: 19.08.2012
Сообщений: 1,367
17.02.2016, 17:55
Croessmah, я писал про однопоточную среду. В многопоточной я использую Ten-Thousands-Checked Locking Pattern
1
Неэпический
 Аватар для Croessmah
18149 / 10731 / 2067
Регистрация: 27.09.2012
Сообщений: 27,038
Записей в блоге: 1
17.02.2016, 18:05
Цитата Сообщение от ct0r Посмотреть сообщение
В многопоточной я использую Ten-Thousands-Checked Locking Pattern
Это хорошо, главное, что не Double-Checked-Lock Pattern
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
17.02.2016, 18:05

Операторы отношений и логические операторы
изучаю C++ по Шилдту, и частенько встречаются не рабочии коды и приходится доделывать под себя, но в этот раз я не пойму почему у него в...

Логические операторы
Верно ли уж так на все 100%, что выполнение логических операций по укороченной схеме заведомо эффективнее, нежели чем безусловное...

Логические операторы в выражениях
Здравствуйте, в одном из тестов для новичков наткнулся на вопрос: каков результат работы следующего кода: int d = 5; bool b = true,...

Не работают логические операторы
Выдает такую ошибку, в интернете не понял как решить, тренируюсь по пособию, там код слово в слово

Условные операторы и логические выражения
Записать логические выражения, используя условные операторы, операции отношений и логические операции алгоритмического языка. График...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
29
Ответ Создать тему
Опции темы

Новые блоги и статьи
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео: https:/ / vkvideo. ru/ video-240781534_456239017 YouTube: eY5-5PyI9NM Текстовая версия
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства. Родственных связей существует 8 ступеней, такие как: p - отец P - мать q - муж Q - жена b - брат B - сестра s - сын S - дочь
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире. Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701 Купил два термопринтера QR701. На сэлф-тесте написано: Language: PC936 (GB18030). Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru