C언어고..


int a = 1;

int b = 0;

b += a++ + a++;

하면, b = 2가 되는데,,,


int a = 1;

int b = 0;

b += a++ + ++a;

하면, b = 4 가 되네 ??


첫번째 케이스에서는 a++이 (b += a++ + a++;)이라는 식이 끝난 뒤에 발동했고,

두번재 케이스에서는 a++이 ++a를 계산하기 전에 발동해서

결과적으로 b += 1 + 3 = 4 가 된 것 같은데


a++은 대체 언제 발동하는 거임?


다른 연사자들(관계연산자, 논리연산자 등,,,)사이에 섞여있으면 어케 따져야 되는지 모르겠다..


누가 좀 알려주라..