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

Разница между "==" и "=" в выражении - C++

Восстановить пароль Регистрация
 
Игорюня
 Аватар для Игорюня
20 / 16 / 7
Регистрация: 07.12.2013
Сообщений: 244
20.03.2014, 14:02     Разница между "==" и "=" в выражении #1
C++
1
if(x==0)
C++
1
if(x=0)
Вообще,раньше думал,что вторая запись запрещена.Но компилятор разрешил.Каков механизм второй записи?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.03.2014, 14:02     Разница между "==" и "=" в выражении
Посмотрите здесь:

кто нибудь делал прогу на С++ "Эмулятор клавиш с промежутком времени между "нажатиями""?! C++
C++ разница между "Порядок выполнения программ на языке C" и "Структура программы на языке C"
C++ vs2010 разница между "int _tmain()" и "int main()"
C++ Необработанное исключение в "0x013f2b22" в "123.exe": 0xC0000005: Нарушение прав доступа при записи "0xfdfdfdfd"
C++ С++ консольное приложение win32, матерится на первое "pow" после "if", а на "system" говорит что неопределён.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
0x10
2425 / 1597 / 232
Регистрация: 24.11.2012
Сообщений: 3,919
20.03.2014, 14:10     Разница между "==" и "=" в выражении #2
Иксу присваивается ноль. Возвращаемое значение - то, что было присвоено.
Тамика
Котовчанин
 Аватар для Тамика
859 / 439 / 129
Регистрация: 16.02.2010
Сообщений: 2,537
Записей в блоге: 27
20.03.2014, 14:11     Разница между "==" и "=" в выражении #3
if(x==0)
Здесть проверка - равен ли х нулю.


if(x=0)
А здесь присвоение х значение ноль. А потом, если не ошибаюсь, идет неявное преобразование в bool. В данном случае х = 0, а ноль - это фолс. То есть условие не будет истинно.
Байт
 Аватар для Байт
13951 / 8782 / 1221
Регистрация: 24.12.2010
Сообщений: 15,891
20.03.2014, 14:20     Разница между "==" и "=" в выражении #4
Цитата Сообщение от Игорюня Посмотреть сообщение
Но компилятор разрешил
Многие компиляторы дают здесь предупреждение. Конструкция вполне законна, хотя чаще всего является ошибкой программиста
Игорюня
 Аватар для Игорюня
20 / 16 / 7
Регистрация: 07.12.2013
Сообщений: 244
20.03.2014, 15:59  [ТС]     Разница между "==" и "=" в выражении #5
То есть после присваения выполнится false?

C++
1
2
3
4
if(x=0)
cout<<1<<endl;
else
cout<<0<<endl;
По идее выведет 0.
Тамика
Котовчанин
 Аватар для Тамика
859 / 439 / 129
Регистрация: 16.02.2010
Сообщений: 2,537
Записей в блоге: 27
20.03.2014, 16:31     Разница между "==" и "=" в выражении #6
Наверное мой пост проигнорируется, но да.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.03.2014, 18:36     Разница между "==" и "=" в выражении
Еще ссылки по теме:

C++ В массиве структур студент с полями "ИМЯ" "ВОЗРАСТ" "УСПЕВАЕМОСТЬ" выполнить сортировку по успеваемости по возрастанию
Разница между понятиями "Обход в прямом направлении" и "Итерационный прямой обход" C++
В чём разница между возвратом "string" и "const string&" & C++

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

Или воспользуйтесь поиском по форуму:
Evg
Эксперт С++Автор FAQ
 Аватар для Evg
16824 / 5245 / 319
Регистрация: 30.03.2009
Сообщений: 14,121
Записей в блоге: 26
20.03.2014, 18:36     Разница между "==" и "=" в выражении #7
Непонятный оператор из книги K&R

Семантика оператора "if (x=0)" более правильно выражается конструкцией "if ((x=0) != 0)". Т.е. записать в x значение 0, прочитать x, сравнить с нулём
Yandex
Объявления
20.03.2014, 18:36     Разница между "==" и "=" в выражении
Ответ Создать тему
Опции темы

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