На языке C, что является результатом x=0
, если я положил его в if-else
состоянии? если он представляет false
или если это назначение завершено, то укажите true
?if-else условие в C
мой коллега писать код, как:
if(condition = 0)
{
//do process A
}
else
{
// do process B
}
очевидно, этот код не так, я знаю, что это должно быть condition == 0
или ((condition=foo()) == 0)
, но мое предположение программа всегда должна сделать процесс А потому, что я думаю, что if(condition = 0)
должен всегда возврат true, поскольку это значение 0
переменной condition
, и этот процесс установки должен быть правдой. Тем не менее, программа всегда выполняет процесс B, то есть значение if
использует значение переменной condition
, и мое предположение неверно.
Тогда я сделал еще один тестовый код:
if(condition = 2) //or other none-zero value
{
//do process A
}
else
{
// do process B
}
на этот раз, программа всегда делает процесс A.
Мой вопрос, почему if-else
условие не использовать значение операции условия, но с помощью левой переменная после настройки?
, но я думаю, что операция присваивания должна возвращать 'true' –
, почему она должна возвращать true? он вернет true для всех значений, кроме только 0. 0. –
Я имею в виду, что операция присваивания успешно выполнена, и при присвоении ошибки нет возврата ошибки –