#include <stdio.h>
int main()
{
int a = 1;
int b = 5;
int c = 3;
int d = (a = b - c, b = a - c, c = a + b);
printf("%d", d);
return 0;
}
逗号表达式是由左向右依次计算,整个表达式的结果是最后一个表达式的结果,在上方代码中,表达式的值即为c的值。
看第一个区域,a=b-c,所以a=5-3=2,此时a = 2。再看第二个区域,b= a - c = 2-3 = -1。
最后来到最后一个区域,c = a+b = 2-1 =1。所以表达式的值就为1,即d的值为1。