【发布时间】:2017-09-10 12:02:28
【问题描述】:
下面的程序在执行时打印';'作为输出。我不明白为什么。当我更改'c'和'i'的值时,有时会添加这两个,有时会打印'='和';'之类的符号
#include<stdio.h>
int main() {
char c='1';
int i=10;
printf("%c", c|i);
}
【问题讨论】:
-
你有什么不明白的?这是按位或的结果。您的预期输出是什么?为什么?
-
你正在对字符
1进行或按位运算,它有一些值和10。它是一个新数字,它的ascii值;我猜。 -
'1'的Ascii值为49,1中的值为10,你正在执行或操作,然后它变成59,你正在打印字符,在ascii表中59是值;字符
-
谢谢。你们俩说的都对。我对 '1' = chr(49) 和 10 = '1010' 进行了 OR 运算,得到了答案 59,即 ';' 的 ASCII 值。
标签: c