Форум программистов, компьютерный форум CyberForum.ru

Что делает оператор ! в выражении инструкции? - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.62
koder
3 / 3 / 0
Регистрация: 13.06.2012
Сообщений: 28
28.07.2012, 23:28     Что делает оператор ! в выражении инструкции? #1
Меня что то запутали, к примеру :

C++
1
2
 int n=3, n2=0;
 if(!n != n2) cout << "\n";
Перенос строки выведется если выражение будет истинным, то есть оператор ! изменит значение своего операнда с 3 на 0 и получится, что 0 не равно 0, а это ложь и по этому перенос строки не выведется.
Но мне говорят, что этот оператор не изменяет значения операнда, а заставляет вывести тело инструкции даже если проверка дала ложь и наоборот если истину, то не вывести. Проблема в том, что я не могу придумать как это проверить, а информации по этому поводу тоже не нашел. Вот к примеру ещё этот код :

C++
1
2
 int n=3, n2=0;
 cout << !n << !n2;
Выведется 0 и 1, то есть здесь меняется значение переменной n c 3 на 0 и переменной n2 с 0 на 1 ? Или под "!n" имеется ввиду логическое выражение, которое проверяется и если оно не ноль, то значить это истина, но из за оператора ! оно станет ложным и выведется 0.
Какой вариант правильный и почему?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
novi4ok
549 / 502 / 8
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
29.07.2012, 18:56     Что делает оператор ! в выражении инструкции? #21
Цитата Сообщение от NightmareZ Посмотреть сообщение
Вот, например, работая дворником, вообще думать не нужно. Подумай об
этом.
я полагаю, ты (или сколько вас?) не имел ввиду обидеть меня или дворников, но все равно глупость написал (-и). как раз работая дворником, больше времени думать можешь о чем хочешь (о том, что такое !n == m, например). а когда недворником, то о таких вещах думать и некогда, и неинтересно.

Добавлено через 4 минуты
любителям писать такие заморочки могу посоветовать погуглить "how to write unmantainable code". думаю, где-то еще лежит. там много подобных "полезных вещей".
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.07.2012, 19:10     Что делает оператор ! в выражении инструкции?
Еще ссылки по теме:

C++ Как возможно выйти в инструкции switch в начало самой инструкции при нажатии "не правильной" кнопки
C++ Не пойму что означает амперсанд в инструкции if
Что делает оператор init в данной ситуации (работа с двумерными массивами) C++

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

Или воспользуйтесь поиском по форуму:
NightmareZ
 Аватар для NightmareZ
1336 / 559 / 37
Регистрация: 31.03.2009
Сообщений: 1,907
29.07.2012, 19:10     Что делает оператор ! в выражении инструкции? #22
Цитата Сообщение от novi4ok Посмотреть сообщение
я полагаю, ты (или сколько вас?) не имел ввиду обидеть меня или дворников, но все равно глупость написал (-и). как раз работая дворником, больше времени думать можешь о чем хочешь (о том, что такое !n == m, например). а когда недворником, то о таких вещах думать и некогда, и неинтересно.
Я хотел сказать, что если ты не в состоянии осилить самые-самые азы и считаешь их чем-то сложным, то стоит подумать о смене профессии, а не колупать людям мозг.

Не по теме:

И, да, безусловно, дворники - очень нужные люди. Во всяком случае, пока их не заменят роботы.

Yandex
Объявления
29.07.2012, 19:10     Что делает оператор ! в выражении инструкции?
Ответ Создать тему
Опции темы

Текущее время: 09:07. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru