【问题标题】:return (a || b) utility?返回 (a || b) 实用程序?
【发布时间】:2016-11-19 19:07:38
【问题描述】:
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);

大家好!我来到这里是因为我明天要为某所学校做一些工作,而且我真的很难找到一种方法来详细说明我的程序,我最终在互联网上搜索了一些答案,这让我找到了最上面的功能。问题是,我不明白“||”在第 10 行......为什么它在这里? (我可能只是用谷歌搜索它,但问题是我根本不知道用什么谷歌来得到任何答案)

【问题讨论】:

  • 阅读the docs|| 是布尔 OR 运算符。
  • @Quentin 我知道是这样,但是因为我只在比较中使用它,所以我不明白为什么它可以在某些返回函数中使用......而且我确实阅读了返回文档,什么都没找到:(
  • 没有“返回函数”之类的东西。这是非常基础的 C 语言,任何入门教科书的开头都应该包含它。 en.cppreference.com/w/c/language/return
  • 如前所述,我正在学习 C,这就是为什么我会问一些非常基本的问题,并且在我说“返回函数”时使用了糟糕的词汇......也是为什么我不知道我可以在除“while”或“if”之外的东西中使用比较器......如果我打扰了更高级别的程序员,我很抱歉,但我在这里寻求帮助以取得进展

标签: c return


【解决方案1】:

在不知道代码做什么的情况下:该语句将评估第一部分 (match(s1, s2 + 1)),并且当且仅当它为零时,评估第二部分 (match(s1 + 1, s2))。如果第一部分为零,则返回true(或1)

【讨论】:

    【解决方案2】:

    如果对 match 的调用之一返回 1,它实际上返回 1。

    调用 match 两次,一次是 s1,s2+1,另一次是 s1+1,s2。如果其中一个调用返回 true,则该函数也返回 true。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-12-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多