我在想“=+”和“+=”(以及其他赋值运算符)是否有区别。我尝试了一下,两者看起来都没什么区别。那么它们是有区别还是遵循一定的规范?这两种方式都能用是否因为我的编译器不检查标准?
编辑:我犯了一个错误,在测试时使用了错误的输入,导致我认为这两个操作都是相同的。结果发现它们是不同的。
“+=”将右值加到左值上。
编辑:我犯了一个错误,在测试时使用了错误的输入,导致我认为这两个操作都是相同的。结果发现它们是不同的。
“+=”将右值加到左值上。
x += y;
x = x + y;
=+
赋值 将 rvalue 赋给 lvalue
x =+ y;
x = +y;
x = y;
=+
运算符。 - Eugene Sh.+
。 - Eugene Sh.=+
运算符了。它在70年代中期就不再是C语言的一部分了。需要注意的是,现代C语言中既可以出现=+
、=-
、=&
,甚至如果其后面的术语是一个指针,则可以出现=*
。但大多数其他运算符都不能这样做。然而,它们是两个单独运算符的含义,它们是否相邻并不重要。 - Jonathan Lefflerint main(void) { int i = 2, j = 3; i =+ j; printf("%d\n", i); return 0; }
,你会得到打印出来的是3还是5?标准C规定应该是3。即使我从未使用过编译器给出不同结果的情况——从原始的=+
更改为+=
已经发生多年了,早在我开始使用C语言编程之前。 - Jonathan Leffler=+
是两个运算符,即等号(=
)和加号(+
)。请参阅我的答案以获取详细信息。 - Keith Thompson