2016-07-06 10 views
0

В следующей программе, почему ~a напечатан на выходе как 10? Почему не -11?Оператор дополнения 1 в C

#include <stdio.h> 

int main() 
{ 
    int a=10; 
    ~a; 
    printf("complement : %d\n",a); 
} 
+0

Вам необходимо включить предупреждения компилятора. – Lundin

ответ

5

Поскольку вы не сохраняете результат операции дополнения в любом месте.

Если вы это сделаете, например,

a = ~a; 

то вы должны получить другой результат.

Или вы могли бы просто напечатать результат операции:

printf("complement : %d\n", ~a);