【问题标题】:Are there SIGN operators in C++?C++ 中有 SIGN 运算符吗?
【发布时间】:2017-06-28 08:34:26
【问题描述】:

他们是操作符“+”和“-”来操纵其操作数的符号吗?

我现在知道我的意思是一元加减运算符!

我以前从未见过这个运算符。

它们是在 C++11 或更高版本的 C++ 标准中引入的吗?

【问题讨论】:

  • 你的意思是加减法?
  • 一元 + 和 - ?他们永远存在
  • 最好称它们为一元减号和一元加号运算符
  • 你的意思是你可以写一个像+123这样的正数或像-123这样的负数?这是非常基本的,并且从一开始就使用 C++。如果没有一元否定运算符,我们怎么能使用负数或负值?

标签: c++ operator-keyword sign


【解决方案1】:

一元 +- 自 1970 年代 C 的早期表述以来就已经存在。

请注意,+ 不是无操作:它会将参数扩大到至少 int 类型。

最后请注意,-1 不是 C++ 中的文字:它是一个编译时可评估常量表达式,由 int 文字 1 的一元否定组成。

【讨论】:

  • 关于“非空操作”,还必须记住,在 C++ 中这些运算符也可以重载。
  • 它还会将数组、函数和无捕获的 lambdas 衰减为指针 :)
  • ^ - 这对于确保特定的模板参数推导或重载解析很有用
【解决方案2】:

是的,C++ 有带符号的运算符。

int a;
a = -20; //valid
a = a + (-30) //valid

阅读有符号和无符号数据类型here 和一元运算符here

【讨论】:

    猜你喜欢
    • 2011-03-11
    • 2011-03-03
    • 2020-11-16
    • 2010-12-03
    • 1970-01-01
    • 2013-11-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多