#include <stdio.h>
int main()
{
int a = 10, b = 5, c = 5;
int d;
d = b + c==a;
printf("%d", d);
}
Run Code Online (Sandbox Code Playgroud)
我想c==a将计算为1和b+1,即5+1=6会输出却是1,如果我改变+,以*输出为0。为什么?
这是运算符优先级的情况。+具有比更高的优先级==,因此
b + c==a;
Run Code Online (Sandbox Code Playgroud)
是相同的
(b + c) == a;
Run Code Online (Sandbox Code Playgroud)
所以变成
10 == 10;
Run Code Online (Sandbox Code Playgroud)
哪个是1。
如果我将+更改为*,则输出为0
然后我们有(5 * 5) == 10哪个是25 == 10哪个0。
| 归档时间: |
|
| 查看次数: |
90 次 |
| 最近记录: |