Так что я следующая программа:C: Ложные состояние интерпретируется как верно, если заявление
# define swap(a,b) temp=a; a=b; b=temp;
int main() {
int i, j, temp;
i = 5;
j = 10;
temp = 0;
if (i > j)
swap(i, j);
printf("%d %d %d", i, j, temp);
}
Это приводит к:
10, 0, 0
То, что я не понимаю, почему if (5 > 10)
Условие выполнено как «истинное», хотя 5 не больше 10.
Результат 10, 0, 0 должна дать вам подсказку, что это не о состоянии оценивая к истине. –