<分区>
为什么这段代码甚至可以编译? “++”运算符是什么意思?
#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++
<分区>
为什么这段代码甚至可以编译? “++”运算符是什么意思?
#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/