#include <stdio.h> int is_even(int x) { return !(x % 2); } int main(void) { int i = 20; if(is_even(i)) printf("Even number\n"); else printf("Odd number\n"); }
求以上小段代码的函数返回值的解释。
在C语言中,非0即为真,!是取反运算符。如果x为偶数,x%2 就等于0,取反后,返回结果为真。如果x为奇数,x%2就等于1,取反后,返回结果为假,也就是0.
由于C中没Bool类型。那么false用0表示,其他则为1。
对于取反操作符,则只会返回0和1。