Как вы упомянули, если утверждение false, это правда. Но я верю, что используемая концепция/логика где-то не подходит, причина будет следовать.
До этого позволяет понять работу & & (Логический И) оператор. Если указано, что если оба операндов, связанных с ним, являются истинными, то только результат является истинным. ПРИМЕЧАНИЕ: 1. для компилятора это означает, что если какой-либо один операнд является ложным, то компилятор не будет вычислять дальше, то есть пропустить следующую допустимую строку кода. 2. 0 (ноль) указывает на программирование с ошибкой.
Ну, Компилятор при первом поиске ищет оператора, а затем ищет операнды, которые связаны с ним .
Таким образом, как только компилятор соударениях «& &» это будет выглядеть на левой стороне оператора, как ассоциативность & & (логическое И) находится слева-направо и оценить значение операнда слева - 0 (ноль). Теперь см. Примечание 2, а затем 1.
Следовательно, компилятор переходит к следующему действительному оператору, который равен printf («% d ...% d», i, j);
Здесь нет прироста не было сделано переменной «J», поэтому значение „J“ останется 0 (ноль)
ПРИМЕЧАНИЕ. Для дальнейшего получения ясно с этой идеей, я предложил бы попробовать один и тот же пример с разными значениями i и j, например i = 1 и j = 1 или i = 2 и j = 1.
+1 для стандартной ссылки – RiaD