【发布时间】:2019-02-08 07:06:34
【问题描述】:
我看到this example in cppreference's documentation for std::numeric_limits
#include <limits>
#include <iostream>
int main()
{
std::cout << "type\tlowest()\tmin()\t\tmax()\n\n";
std::cout << "uchar\t"
<< +std::numeric_limits<unsigned char>::lowest() << '\t' << '\t'
<< +std::numeric_limits<unsigned char>::min() << '\t' << '\t'
<< +std::numeric_limits<unsigned char>::max() << '\n';
std::cout << "int\t"
<< std::numeric_limits<int>::lowest() << '\t'
<< std::numeric_limits<int>::min() << '\t'
<< std::numeric_limits<int>::max() << '\n';
std::cout << "float\t"
<< std::numeric_limits<float>::lowest() << '\t'
<< std::numeric_limits<float>::min() << '\t'
<< std::numeric_limits<float>::max() << '\n';
std::cout << "double\t"
<< std::numeric_limits<double>::lowest() << '\t'
<< std::numeric_limits<double>::min() << '\t'
<< std::numeric_limits<double>::max() << '\n';
}
我不明白
中的“+”运算符<< +std::numeric_limits<unsigned char>::lowest()
我已经测试过了,用“-”替换它,这也有效。 这样的“+”运算符有什么用?
【问题讨论】:
-
试试看。如果省略
+,你会得到什么? -
如果代码的编写者愿意解释它的含义或使用显式强制转换,那么这个问题将不需要来询问...
-
如果您替换为
-,则输出将不是限制的正确值 -
为了记录,如果你想自己谷歌这种东西,这被称为“一元加号”运算符——它是一元的,因为它需要一个值(在这种情况下,东西紧随其后),并且“加号”是 Google 友好的表示
+的方式。在这种情况下,您的查询可能是“c++ unary plus”。它......不是很直观,你仍然需要学习阅读你会找到的文档,但 IMO 这是一项有用的技能,可以培养。
标签: c++ char unary-operator