关于C++中的return
About return in C++
很抱歉遇到这个新手问题,但我在谷歌上找不到我需要知道的内容。
我理解返回,但不理解。。。这是什么意思?
return (tail+1)%N == head%N;
非常感谢你的耐心。
它返回true
或false
,具体取决于表达式是否为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的余数是否与头的余数相同。
它计算表达式并返回结果。在这种情况下,比较的是两个模运算,结果是返回的true
或false
。
简短回答:
由于使用了==
运算符,函数将返回一个bool
,这意味着它只能是true
或false
。一个类似的例子是:
return 5 == 4;
这将返回CCD_ 9,因为5不等于4。
长答案:
您可以将其拆分为更多的代码行,而不是将其写在一行中。假设tail
、head
和N
是整数值,那么您可以这样写:
int x, y;
x = (tail+1)%N;
y = head%N;
if ( x == y )
{
return true;
}
else
{
return false;
}
现在,在这段代码中,%
可能也会让您有点困惑。%
被称为Modulus Operator
,它可以为您提供算术运算的剩余部分。在一个简单的例子中,这意味着:
CCD_ 16,因为CCD_。所以,为了让它更清楚,让我们再举一个关于你的具体问题的例子:
让我们假设tail=10
、head=6
和N=2
。然后你会得到这样的东西:
x = (10+1)%2
x = 11 % 2
x = 1
y = 6 % 2
y = 0
y != x
这将返回false
,因为x
和y
不相等。(如果您使用给定的示例值运行代码)
要了解更多关于Modulus
的信息,您可以在这里查看,也可以查看任何其他基本的C++教程。
如果尾部+1和头部的除法余数是相同的,则返回true
例如,如果尾部为2,头部为1,N为2
(尾部+1)%N为1
头%N是1太
所以整个表达式返回真实的
- 将成员变量添加到共享库中的类中,不会破坏二进制兼容性吗
- C++函数中的精确"return"矩
- 如何解决类成员函数中的"return a value"错误?
- 为什么"return (str);"推断出与C++中的"return str;"不同的类型?
- Visual Studio 2019 中的"C linkage function cannot return C++ class"
- C++11 是否保证 return 语句中的局部变量将被移动而不是复制?
- return语句中的C++constexpr函数
- 朋友类中的no return语句
- 哪种"return"方法更适合 C++/C++11 中的大数据?
- C++ cout 字符'return'文件中的字符出现两次
- 关于C++中的return
- 错误:函数中的return语句没有值,返回“void*”[-fpermission]
- 递归中的return语句:C++
- 在C++程序的主要函数中,“return 0”的作用和含义是什么
- 应该在main中的return语句之前释放内存吗?
- RETURN语句中的表达式将被执行
- "return {}" C++11 中的陈述是什么意思?
- 需要'return to main menu' C++代码中的功能
- c++中的奇怪语法:return {.name=value,…}
- 来自同一父级的另一个子类中的 return 函数不返回任何内容