С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Revolver19931
1 / 1 / 1
Регистрация: 24.09.2013
Сообщений: 140
#1

Код с подвохом: какое значение присвоится переменной? - C++

13.07.2016, 20:55. Просмотров 592. Ответов 26
Метки нет (Все метки)

есть часть кода
C++
1
2
3
a=0;
x=1;y=-1;
if(x>0) if (y=0) a=1 else a=2
C++
1
if (y=0)
тут идет присвоение значения y=0 а не сравнивание, если что)

вопрос в том какое значение присвоится переменной а ?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.07.2016, 20:55
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Код с подвохом: какое значение присвоится переменной? (C++):

Присвоить значение наименьшего элемента массива переменной М1, номер строки, где находится этот элемент, - переменной Т, номер столбца - переменной С - C++
Массив С действительных чисел имеет 5 строк и 11 столбцов. Присвоить значение наименьшего элемента массива переменной М1, номер строки, где...

Какое поле у структурной переменной содержащей указатель? - C++
Добрый день! Только учу С++. И, вот , возник вопрос. Обычная структура, например. struct sct { int d; int f; } sct s; ...

Создать две переменных, ввести их с клавиатуры. Вывести строки: имя переменной - адрес переменной - значение п - C++
Создать две переменных, ввести их с клавиатуры. Вывести строки: имя переменной - адрес переменной - значение переменной.

Переполнение знаковых целых чисел: почему значение переменной обнуляется, а не записывается младшее значение? - C++
что то не пойму, как происходит переполнение знаковых целых чисел вот #include <iostream> int main(int argc, char* argv) { ...

Вычислить значение у, где. Значение переменной х введите с клавиатуры - C++
Вычислить значение у, где. Значение переменной х введите с клавиатуры.

Какое значение будет иметь а? - C++
Помогите выбрать правильный вариант в этой задаче(и еще объясните, как вы считали). Заранее спасибо. int a; int f(int x) { a=0; ...

26
0x90h
304 / 270 / 96
Регистрация: 01.10.2015
Сообщений: 832
13.07.2016, 22:24 #16
_Ivana, тогда уж проще вообще написать:
C++
1
if (x) a = 2;
0
_Ivana
3201 / 1817 / 153
Регистрация: 01.03.2013
Сообщений: 5,047
Записей в блоге: 4
13.07.2016, 22:28 #17
0x90h, проще, но работать будет по-другому на отрицательных иксах.
0
0x90h
304 / 270 / 96
Регистрация: 01.10.2015
Сообщений: 832
13.07.2016, 22:32 #18
Цитата Сообщение от _Ivana Посмотреть сообщение
на отрицательных иксах
Разве?
0
_Ivana
3201 / 1817 / 153
Регистрация: 01.03.2013
Сообщений: 5,047
Записей в блоге: 4
13.07.2016, 22:34 #19
Цитата Сообщение от 0x90h Посмотреть сообщение
Разве?
Это несложно проверить.
0
Tulosba
:)
Эксперт С++
4397 / 3233 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
13.07.2016, 22:57 #20
Цитата Сообщение от Revolver19931 Посмотреть сообщение
вопрос в том какое значение присвоится переменной а ?
Такие вопросы правильнее всего задавать компилятору. А если будет расхождение с ожидаемым поведением уже начинать разбор. И если понять не получилось - можно спросить и у других. Но ты, по-моему, первые два пункта проигнорировал.
0
Unknownx
13.07.2016, 22:59
  #21

Не по теме:

Цитата Сообщение от _Ivana Посмотреть сообщение
Да и без явных кастов само к булу прибулится
- смотря от настроек, там где warning as errors нужно явно кастовать

0
Tulosba
:)
Эксперт С++
4397 / 3233 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
13.07.2016, 23:06 #22
Цитата Сообщение от Unknownx Посмотреть сообщение
ам где warning as errors нужно явно кастовать
С дополнительной парой скобок предупреждений быть не должно. Компиляторы даже подсказку дают на этот счет.
g++: warning: suggest parentheses around assignment used as truth value [-Wparentheses]
clang++: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
note: place parentheses around the assignment to silence this warning
note: use '==' to turn this assignment into an equality comparison
0
Unknownx
14.07.2016, 17:55
  #23

Не по теме:

Tulosba, онлайн компиллеры кодпад или ideone настроить можно?

0
ASCII
90 / 63 / 10
Регистрация: 15.12.2013
Сообщений: 407
Завершенные тесты: 2
14.07.2016, 18:02 #24
Цитата Сообщение от Хрисипп Посмотреть сообщение
оно как раз и возвращает true, т.к. это утверждение
false она вернет, ибо после присвоения, то бишь после side effect, произойдет value computation, то есть вычисление выражения в целом, вернется нуль, который скастится к bool, что равносильно false
0
Хрисипп
19 / 29 / 8
Регистрация: 09.02.2016
Сообщений: 217
14.07.2016, 18:41 #25
Цитата Сообщение от ASCII Посмотреть сообщение
false она вернет
у меня возвращает true. и первый раз слышу о таком
0
ASCII
90 / 63 / 10
Регистрация: 15.12.2013
Сообщений: 407
Завершенные тесты: 2
14.07.2016, 18:50 #26
Хрисипп, Не знаю, почему у Вас возвращает true

http://rextester.com/PVC81030
http://rextester.com/PGENI17354
http://rextester.com/HEDW13949
0
Tulosba
:)
Эксперт С++
4397 / 3233 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
14.07.2016, 19:11 #27
Цитата Сообщение от Unknownx Посмотреть сообщение
онлайн компиллеры кодпад или ideone настроить можно?
Эти не очень. Для более тонкой настройки рекомендую http://coliru.stacked-crooked.com/ и http://melpon.org/wandbox/
1
14.07.2016, 19:11
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.07.2016, 19:11
Привет! Вот еще темы с ответами:

Загрузка переменной из DLL (GetProcAddress не берет значение переменной из *.dll) - C++
GetProcAddress не берет значение переменной из *.dll Не могу понять почему. Помогите. ------------------------- *********** ...

Задачка: какое значение вернет foo(7)? - C++
Как решаются такие рода задачки, подскажите пожалуйста. int foo(int n) { if(n<=0) return 1; else return...

Какое значение вернет программа операционной системе? - C++
Допустим, в программе присутствует следующий код: int fn(int a) { return a++; } void main() { int x = fn(7); return x; } ...

какое значение будет выведено при выполнении операторов - C++
помогите пожалуйста.


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.