为什么a和b的结果不同?明明同样数量的i++和++i初始值i也相同,只是顺序不一样。
#include<stdio.h>
int main(){
int i=1;
int a,b;
a=((i++)+(++i)+(++i)+(i++));
i=1;
b=((++i)+(i++)+(i++)+(++i));
printf("a=%d b=%d",a,b);
}

为什么a和b的结果不同?明明同样数量的i++和++i初始值i也相同,只是顺序不一样。
#include<stdio.h>
int main(){
int i=1;
int a,b;
a=((i++)+(++i)+(++i)+(i++));
i=1;
b=((++i)+(i++)+(i++)+(++i));
printf("a=%d b=%d",a,b);
}

答案为A=12,B=12。 下侧为完整代码运行,C#写的,逻辑一样,楼上几位讲的都正确,我这就直接Show逻辑了,嘿嘿
```using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace 临时
{
class Program
{
static void Main(string[] args)
{
int i = 1;
int a, b;
a=((i++)+(++i)+(++i)+(i++));
i = 1;
b=((++i)+(i++)+(i++)+(++i));
Console.WriteLine("a={0},b={1}",a,b);
Console.ReadLine();
}
}
}