关于C++中的return

About return in C++

本文关键字:return 中的 C++ 关于      更新时间:2023-10-16

很抱歉遇到这个新手问题,但我在谷歌上找不到我需要知道的内容。

我理解返回,但不理解。。。这是什么意思?

  return (tail+1)%N == head%N;

非常感谢你的耐心。

它返回truefalse,具体取决于表达式是否为true。

与相同

if ( (tail+1)%N == head%N )
   return true;
else
   return false;

(尾部+1)%N=头部%N

返回布尔值,可以为true,也可以为false。这句话的意思是,在把1加到trail(trail+1)后,用N除法后得到的余数等于头除以N的余数。%用于用余数除法

(%)。模是给出两个值的除法余数的运算。

检查此链接中的c++运算符:http://www.cplusplus.com/doc/tutorial/operators/

您将返回一个布尔值。该值表示(tail+1)除以N的余数是否与头的余数相同。

它计算表达式并返回结果。在这种情况下,比较的是两个模运算,结果是返回的truefalse

简短回答:

由于使用了==运算符,函数将返回一个bool,这意味着它只能是truefalse。一个类似的例子是:

return 5 == 4;

这将返回CCD_ 9,因为5不等于4。

长答案:

您可以将其拆分为更多的代码行,而不是将其写在一行中。假设tailheadN是整数值,那么您可以这样写:

int x, y;
x = (tail+1)%N;
y = head%N;
if ( x == y )
{
    return true;
}
else
{
    return false;
}

现在,在这段代码中,%可能也会让您有点困惑。%被称为Modulus Operator,它可以为您提供算术运算的剩余部分。在一个简单的例子中,这意味着:

CCD_ 16,因为CCD_。所以,为了让它更清楚,让我们再举一个关于你的具体问题的例子:

让我们假设tail=10head=6N=2。然后你会得到这样的东西:

x = (10+1)%2
x = 11 % 2
x = 1
y = 6 % 2
y = 0
y != x

这将返回false,因为xy不相等。(如果您使用给定的示例值运行代码)

要了解更多关于Modulus的信息,您可以在这里查看,也可以查看任何其他基本的C++教程。

如果尾部+1和头部的除法余数是相同的,则返回true

例如,如果尾部为2,头部为1,N为2

(尾部+1)%N为1

头%N是1太

所以整个表达式返回真实的