довольно простой вопрос, который у меня есть, но я не смог найти ответ:
Предположим, у меня есть условное предложение, состоящее из нескольких условий.Например, что-то вроде
if((a == b && strcmp(string1, string)) || x <= 5)
Мой вопрос таков: будут ли оцениваться все эти утверждения, независимо от того, каков был результат первых, или остановится ли оценка, когда результат станет ясным.1007 * Поскольку я не уверен, ясен ли мой вопрос, вот пример:
if(a == 5 || b > 12 || (c = someFun()) == 3)
В этом случае, если a == 5, дальнейшие проверки не потребуются, поскольку результат большого оператораэто правда, поэтому мы могли бы просто продолжить.Это будет означать, что someFun () не будет оцениваться.
Это так?Я знаю, что Java имеет значение здесь между && и & resp.||и |(последние в любом случае недоступны в C), но я не знаю, как C справляется с этим