0

使用 Bash,您可以像这样进行简单的变量测试

$ [ $foo ]; echo $?
1

$ foo=bar

$ [ $foo ]; echo $?
0

当且仅当参数不为空时,表达式才为真。

用 C 进行类似的测试是什么?

编辑

让我们说一个int类型来论证。

4

1 回答 1

1

通常,C 中存在隐式布尔转换。因此以下所有内容都会打印“bad”:

int a = 0;
if (a) {                  // if a is nonzero.
    printf("good");
}
else {
    printf("bad");
}

char* str = NULL;
if (str) {                  // if str is nonzero. (NULL is zero).
    printf("good");
}
else {
    printf("bad");
}
于 2012-10-11T05:47:11.900 回答