C语言 交替加减运算符做什么?



由于某种原因,这个程序用C编译:

int x;
x = 3+-+-5+-5;
printf("%dn",x);

一般来说,交替使用"+"one_answers";产生绯闻;编译。似乎如果有奇怪的"-"然后是减法,否则是加法。

这到底是什么?

在这种情况下,左操作数右侧的第一个+或-表示要执行的二进制操作;后面的+和-是应用于右操作数的一元+和-操作符。一元+操作数不做任何事情,而-改变符号。这就产生了你所看到的行为:奇数个-要么是一个负数的加法(+后面跟着+s和奇数个-s),要么是一个正数的减法(-后面跟着+s和偶数个-s)。

最新更新