我对下面的代码如何执行表达式感到困惑。
#include<stdio.h>
int main()
{
int a[10];
a[0] = 1;
a[1] = 2;
printf("%d %d",a[0],a[1]);
a[0] = a[0] - (a[0] = a[1]); // not able to understand its flow of execution
printf("\n%d %d",a[0],a[1]);
}
Run Code Online (Sandbox Code Playgroud)
输出是
1 2
-1 2
我的疑问是括号内的赋值运算符在哪里执行并更改a [0]元素,并在表达式中使用,例如
索引:0 1
元素:1 2
在表达式中:2 2 //当(a [0] = a [1])
a [0] = a [0]-(a [0]-a [1]);
a [0] = 1-(2);
a [0] = -1;
(要么)
索引:0 1
元素:1 2
在表达式中:1 2 //当(a [0] = a [1])
a …
c ×1