2016-07-16 57 views
-6
if (!*s1 && !*s2) 
    return (1); 
else if (*s1 == *s2 && *s1 != '*') 
    return (match(s1 + 1, s2 + 1)); 
else if (*s1 == '*' && *s2 == '*') 
    return (match(s1 + 1, s2)); 
else if (*s2 == '*' && !*s1) 
    return (match(s1, s2 + 1)); 
else if (*s2 == '*' && *s2 && *s1) 
    return (match(s1, s2 + 1) || match(s1 + 1, s2)); 
else 
    return (0); 

嗨,大家好!我來到這裏是因爲明天我有一些工作要去學校,而且我正在努力尋找一種方式來詳細說明我的計劃,所以我最終在互聯網上搜索了一些答案,這導致我在上面找到了一些功能。事情是,我不明白「||」在第十行......爲什麼在這裏? (我可能只是谷歌,但事情是,我不知道什麼是谷歌在所有得到任何答案)返回(a || b)實用程序?

+0

閱讀[文檔](http://en.cppreference.com/w/c/language/expressions#Operators)! '||'是布爾OR運算符。 – Quentin

+0

@Quentin我知道這是,但因爲我只用它進行比較,所以我沒有看到任何爲什麼它可以用於某些返回函數中......而且我確實閱讀了返回文檔,沒有找到任何內容:( –

+0

「返回函數」沒有這種東西,這是非常基本的C語言,它應該在任何介紹性教科書的開頭部分都介紹過。http://en.cppreference.com/w/c/language/return –

回答

0

不知道代碼的功能:該語句將評估第一部分(match(s1, s2 + 1)),以及當且僅當爲0,評估第二部分(match(s1 + 1, s2))。如果第一部分是而非爲零,則返回true(或1)

+0

非常感謝!:) –

0

它實際上是返回1,如果其中一個通話,以匹配返回1

它用s1,s2 + 1和s1 + 1,s2兩次呼叫匹配。如果其中一個調用返回true,該函數也會返回true。

+0

非常感謝^^ –

相關問題