a = a + b与a += b有什么不同?

2025-01-01 02:00:04
推荐回答(5个)
回答1:

我也说不太好,但是至少我知道在强类型语言(比如c++)里面,当a和b的类型不同时,使用 a = a + b  可能会造成类型无法自动转换,会导致无法通过编译

比如下面这段代码就无法通过编译:

#include
using namespace std;

int main(){
int c = 0x21; //! 的ASCII码
string str = "hello";

str = str + c;

cout << str << endl;

return 0;
}

而改成这样就可以通过编译:

#include
using namespace std;

int main(){
int c = 0x21; //! 的ASCII码
string str = "hello";

str += c;

cout << str << endl;

return 0;
}

需要注意的是并不是类型不匹配就一定会导致第一个代码无法通过编译(比如int和long long、int和char等等就可以通过编译),具体的话我也解释不太清楚,反正就是后者可以完成类型的自动转换,而前者不行

回答2:

第一种让程序员去维护,比较直观好读,第二个在编码规范中的写法,结果都一样。

回答3:

int a = 100;
a = a + 9;

基本的执行是
将100赋值给a
记录9
两数相加

int a = 100;
a += 9;
基本的执行是
将100赋值给a
将指定的100增加指定值,即9

回答4:

还是比较多用后面那个,前面那个看起来都不象程序.

回答5:

后者节约了一个节符