c - 交替的加号和减号运算符有什么作用?

标签 c math operators

由于某种原因,该程序在 C: 中编译

int x;
x = 3+-+-5+-5;
printf("%d\n",x);

一般来说,交替“+”和“-”进行编译。好像有奇数“-”就减,否则就加。

这到底是什么?

最佳答案

在此类情况下,左侧操作数右侧的第一个 + 或 - 指示要执行的二元运算;之后的其他 + 和 - 是应用于右侧操作数的一元 + 和 - 运算符。一元 + 操作数不执行任何操作,而 - 会更改符号。这会导致您看到的行为:奇数个 - 要么是负数的加法(+ 后跟 +s 和奇数个 -s),要么是正数的减法(- 后跟 +s 和偶数) -s 的数量)。

关于c - 交替的加号和减号运算符有什么作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66541002/

相关文章:

c# - 将 float 转换为 int 数将导致 int 无效

c - 一般情况下,将 ungetc() 包装起来,而不使用 put() gets() 和流

c - 为什么 char 值增加 3?

c++ - 如何最小化结构类型的内存使用?

c++ - 这是什么=!运算符(operator)?

C++重载operator+和动态内存分配

java - 如何在 Java 中创建包含运算符的变量?

c - 加密 C 库

javascript - 添加到 Number.MAX_VALUE

python - Python 中意想不到的复数