| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > логическое отрицание |
| Автор: wwwdiz 17.12.2006, 20:36 |
| В букваре в одном из листингов нашёл след: int j=0; ..... ..... if (!j) { ..... } !j это вообще возможно такое? впервые вижу!!! |
| Автор: Daevaorn 17.12.2006, 20:47 |
Да, а что не нравится? |
| Автор: Xenon 17.12.2006, 20:53 |
| wwwdiz, а почему бы нет? После !j оно будет равно 1. |
| Автор: GrafCharodey 18.12.2006, 10:54 |
| Xenon, ну после этой операции 1 она равняться не будет, так как здесь нет никакого присваивания... Просто данное условие будет выполнено при j отличное от нуля... Символ "!" является логическим оператором отрицания... |
| Автор: Natalka 18.12.2006, 11:07 |
| if (!j) означает,что если j не равно 0, то будет выполняться какое- то условие, потому-что j у нас по условию=0; |
| Автор: vinter 18.12.2006, 11:21 | ||
наоборот |
| Автор: dumb 18.12.2006, 11:26 |
с точностью до наоборот. |
| Автор: Voldemar2004 18.12.2006, 11:46 |
| if (истина) <операторы> истинным считается число, отличное от 0. Для оператора if это может быть 10, 100 и т.д. if(!1) <не выполняются операторы> Легко проверить: не истина = ложь, не ложь = истина. |
| Автор: Xenon 18.12.2006, 17:37 |
| GrafCharodey, ну да |
| Автор: GrafCharodey 20.12.2006, 13:26 |
| dumb, точно)) 0 у нас является false, остальное true... |
| Автор: Anikmar 20.12.2006, 16:00 | ||
Интересно, это прописано в стандарте C++ ? |
| Автор: Любитель 20.12.2006, 16:39 |
| Да. Есть правила приведения целых типов к bool. |