等于运算符在没有条件的情况下被调用

时间:2012-05-02 05:56:18

标签: c

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

#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 个答案:

答案 0 :(得分:5)

它初始化valuestrcmp(str, "abcdefghi") == 0的结果为01,具体取决于strcmp返回的内容。

答案 1 :(得分:1)

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

答案 2 :(得分:0)

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

答案 3 :(得分:0)

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

就像是

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

现在在inside()中,如果strcmp返回0然后(0 == 0),这意味着它将给出1

          if strcmp returns anything else then 0 then () will give 0