Это следующее из обсуждения , которое я думаю, заслуживает своего собственного вопроса.
В основном, является результатом этого неопределенного?
int x;
int y = 1 || x;
здесь есть два аргумента «здравый смысл»:
x
, значение Y
должно быть 1
. x
никогда не оценивается в любом случае. Но контраргментация заключается в том, что у нас есть выражение, которое включает в себя неинициализированную переменную, поэтому все ставки выключены (теоретически).
В целом, если значение неинициализированной переменной не может повлиять на результат выражения, это «безопасно»? E.g.
int x;
int y = x - x;
Usual Отказ от ответственности: Конечно, я не защищаю когда-либо пишущий код, как это.