赋值运算符之间的差(+=和=)

Difference between assignments operator (+= and =)

本文关键字:之间 赋值运算符      更新时间:2023-10-16

我已经为c++编程一段时间了。不过,我的问题可能仍然很天真

+=和+之间有什么区别。例如

std::string a = "Hi";
a += "b" + "c";

std::string a = "Hi";
a = a + "b" + "c";

如果有任何差异,哪一个更适合使用?哪一个操作计数较少?

在这个特定的例子中,有一个很大的区别:a += "b" + "c";不编译,而a = a + "b" + "c";编译。前者试图添加两个指针,这在语法上是无效的。后者添加了std::stringchar*指针,恰好有一个合适的operator+过载。