2017-09-10 9 views
-8

以下のプログラムは実行時に ';'出力として出力する。なぜ私は理解していない。私が 'c'と 'i'の値を変更しているとき、時には '='や ';'セミコロン(;)を印刷するのはなぜですか?

#include<stdio.h> 

int main() { 
    char c='1'; 
    int i=10; 
    printf("%c", c|i); 
} 
+2

あなたは何を理解していません?これはビット単位のORの結果です。期待される成果とは何ですか? –

+1

あなたは、ある値と10を持つ文字 '1'に対してOrのビット演算をしています。これは新しい数値です。これはASCIIの値です。私は推測する。 –

+0

'1'のアスキー値は49で、1の値は10です。実行または操作している場合は59になり、アスキーテーブル59には文字が表示されます。文字 –

答えて

5

49 | 10 = 5959ので​​3210のASCIIコードです。

関連する問題