0

我正在查看我的产品中的一些旧代码,我发现了以下代码。

#include <stdio.h>
#include <string.h>
int main ( int argc, char **argv) {
    const char *str = "abcdefghi";
    int value = strcmp(str, "abcdefghi") == 0;
}

int value = strcmp(str, "abcdefghi") == 0;此类代码的目的是什么。

4

4 回答 4

5

它使用将是或取决于返回value的结果进行初始化。strcmp(str, "abcdefghi") == 001strcmp

于 2012-05-02T05:59:58.523 回答
1

在 C 表达式中使用关系运算符的结果是 0 或 1。

于 2012-05-02T05:59:45.813 回答
0

如果strcmp(str, "abcdefghi")返回0则将strcmp(str, "abcdefghi") == 0返回 true 并value分配值 1。如果返回 1 则将value分配值 0。

于 2012-05-02T06:09:30.980 回答
0
int value = strcmp(str, "abcdefghi") == 0;

是这样的

int value = (strcmp(str, "abcdefghi") == 0);

现在在 () 内部 if strcmp 返回 0 then (0 == 0) 这意味着它将给出 1

          if strcmp returns anything else then 0 then () will give 0 
于 2012-05-02T06:29:41.423 回答