小编sel*_*i s的帖子

我对执行流程感到震惊,谁能帮我

我对下面的代码如何执行表达式感到困惑。

#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

-5
推荐指数
1
解决办法
69
查看次数

标签 统计

c ×1