2013-06-21 3 views
-7

Выход программы ниже 0, но почему?Почему вывод этой программы 0?

#include <stdio.h> 
#include <conio.h> 
int main() 
{ 
     int x=5;   
     printf("%d",x!=5); 
     getch(); 
} 
+1

хммм,! == странное oprator –

+0

! == не является оператором, я сильно сомневаюсь, что ваш код имеет какой-либо вывод на всех. – LtWorf

+1

Что такое '! =='? вы имели в виду '! ='? –

ответ

2

False печатается как 0.

x!=5 ложно, следовательно %d напечатает 0, если вы x==5, он будет печатать 1.

http://codepad.org/t8DAMu3A

+1

AFAIK, true ist определяется как «не ноль», большинство компиляторов будет печатать true как 1, но не гарантируется. true может быть любое число, кроме 0. – WoJo

+0

Истина не обязательно 1. Она может быть обозначена любым ненулевым значением. –

+0

'c11' действительно говорит, что это' 1'. От, http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1570.pdf: раздел 6.5.9.3, '== (равно) и! = (Не равно) аналогичны реляционным операторам, за исключением их более низкого приоритета.) Каждый из операторов дает 1, если указанное отношение истинно и 0, если оно ложно. Результат имеет тип int. Для любой пары операндов истинно одно из отношений. – VoidPointer