2012-05-02 26 views
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;的目的是什麼。

回答

5

它初始化valuestrcmp(str, "abcdefghi") == 0其結果將是取決於什麼strcmp返回01使用關係運算符在C表達結果的結果。

1

在0或1。

0

如果strcmp(str, "abcdefghi")回報0然後strcmp(str, "abcdefghi") == 0將返回true,如果返回1,則value將被分配爲0

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

value將被分配一個值1是一樣的東西

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

現在在裏面()如果strcmp返回0那麼(0 == 0)這意味着它會給出1

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