int _tmain(int argc, _TCHAR* argv[])
{
 char a = 'b';
 int b = 3;

 switch(a)
 {
 case 'a' : b = b+1;
 case 'b' : b = b++;
 case 'c' : b -= 3;
 case 'd' : b *=2;
  break;
 }
 printf("%dn", b);


 return 0;
}

이런 switch문에서 a = 'a', 'b', 'c', 'd' 바꿔가면서 넣어보고 있는데

a = 'b'일 때 case 'b' : b = b++ 에서 마지막에 출력되는 b의 값이 2가 나오는데 왜 2가 나오는지 모르겠어요

제가 생각하기론 b++ 이니까 1이 증가하기 전의 b 값인 3이 출력되야 할거 같은데 왜 2가 출력되는거죠?

제가 혹시 잘못 생각하고 있는 부분이 있는건가요?