【发布时间】:2013-08-16 06:27:15
【问题描述】:
我是 c 新手,到目前为止,我主要处理的是使用循环编写代码,但我遇到了这个问题,其中包含一些我以前从未见过的符号。您能解释一下为什么我编译和运行时会显示这些数字吗?
#include <stdio.h>
int main () {
int i = 23, j = 13, k = 11, m;
printf("%d\n", i || j && k);
printf("%d\n", i | j & k);
m = i == j && k;
printf("%d %d\n", m, -!m < 0);
m = i ^ (j=13);
printf("%d %d\n", m, j);
j = 7;
m = 7;
m = i & ~(j==7);
printf("%d\n", m);
m = ~(~k | k);
printf("%d\n", m);
}
我明白了:
1 - 31 - 0 1 - 26 13 - 22 - 0
【问题讨论】:
-
这个问题并不具有建设性。没有办法说出您不熟悉哪些符号。你能缩小范围并使其更具体吗?
-
第一个printf,为什么会出现1?二、为什么31出来,没见过只有一个 | 天天要闻和&,通常他们是两个一组。三、“m = i == j && k;”这是如何工作的,什么是'-!m
标签: c bitwise-operators symbols logical-operators