我在我的代码中发现了这个,这是我的错字,但它仍然编译.谁知道为什么?我不知道.
#include <string>
#include <iostream>
int main()
{
std::string x;
std::string b = "Bryan";
x += '|' + b, x;
std::cout << x << std::endl;
}
Run Code Online (Sandbox Code Playgroud)
Naw*_*waz 21
x += '|' + b, x;
Run Code Online (Sandbox Code Playgroud)
这里,基本上是一个运算符,其左操作数首先被计算,然后是右操作数.就这么简单.
由于优先级+=和+高于,运营商,它成为等价于:
(x += '|' + b) , x;
Run Code Online (Sandbox Code Playgroud)
这里:
left operand => (x += '|' + b)
right operand => x
Run Code Online (Sandbox Code Playgroud)
试试另一个例子:
int f() { ... }
int g() { ... }
f(), g();
Run Code Online (Sandbox Code Playgroud)
这里f()将首先调用,然后调用g().
希望有所帮助.