int j=4;
(!j!=1)?printf("Welcome"):printf("Bye");
В приведенном выше сегменте кода, по мне, первый приведет к истинным и !true
является ложным, которое должно привести к печати Bye
, но я получаю Welcome
как выход.выполнение условных операторов
Может ли кто-нибудь объяснить это?
Посмотрите на [таблицу приоритетов операторов] (http://en.cppreference.com/w/c/language/operator_precedence) и ответьте сами. –
Очевидно, это должно было быть написано как «j ?? !! j! = 1? printf («Добро пожаловать»): printf («Bye»); вместо этого для ясности. – Lundin
Было бы хорошо, если бы вы отметили один из ответов как ответ ... – Charles