我发现了这段代码:
#include <stdio.h>
#include <ctype.h>
int f(int c) {
static int b;
if (isspace(c))
return b = c & '\n';
f(getchar());
return putchar(c) == b && f(c);
}
int main(void) {
return f(0);
}
我希望了解这段代码是如何工作的,我从未见过如此精细的代码,c & '\n'
是什么意思?为什么要进行比较putchar(c) == b
?
有人能帮我理解吗?
c & '\n'
是对十进制值为10或二进制值为1010的字符 '\n' 进行按位与运算。然后将全局变量 b 设置为该值。 - David Maustf(getchar());
。 - RedX