c语言赋值运算符问题

#include<iostream>
using namespace std;

int main()
{
    int a = 0;
    int b = (a++) - (++a);
    cout << a << endl;
    cout << b << endl;
    a = 0;
    int c = (a++) + (++a);
    cout << a << endl;
    cout << c << endl;
    system("pause");
    return 0;
}
//为什么b=0?????

哈哈确实很离谱,应该等于-2的感觉