c++ - "+ +"运算符的含义(非++)

标签 c++

<分区>

为什么这段代码甚至可以编译? “++”运算符是什么意思?

#include <string>
int main()
{
  std::string c = "abc";
  c = c + + "d";
  c = c + + + "d";
  c = c + + + + "d";
  c = c + + + + + "d";
  printf("%s\n", c.c_str());
}

最佳答案

没有 + + 运算符。有一个 + 运算符(以一元和二进制形式出现)和一个 ++ 运算符,此处未使用。

其中每一个都是二元 + 运算符,后跟一个或多个一元 + 运算符。

这个:

c = c + + "d";

相当于

c = c + (+ "d");

这个:

c = c + + + "d";

相当于:

c = c + (+ + "d");

或:

c = c + (+ (+ "d"));

等等。

关于c++ - "+ +"运算符的含义(非++),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39777302/

相关文章:

c++ - 我们通常应该使用浮点字面量来代替更简单的 double 字面值吗?

c++ - gcc 如何在 linux 上实现 C++ 异常的堆栈展开?

c# - 与使用 winPcap 代替套接字相关的风险

C++ for-each循环,数组分配在堆上

c++ - OpenGL - 不显示简单的 2D 纹理

c++ - NVI 和去虚拟化

c++ - 为 vector 分配内存

c++ - 如何找到传递给函数的矩阵的大小?

c++ - pretty-print 元组的剖析

c++ - 从扬声器录制并通过按键结束录制过程,而不是等待指定的时间