C++ 공부하다가 궁금 한 건데,

i++, ++i랑 차이점이 궁금합니다. 식을 만들어 컴파일 해서 차이 점을 알아보려 해도 결과만 나오니 알수 없다는....;;

        int a=150;
        int b=300;
        a +=150;
        cout<<a<<endl;
        cout<<a++<<endl;
        cout<<++a<<endl;
        cout<<++b<<endl;
        return 0;

의 결과가 왜 300 300 302 301가 나오는지 알고 싶어요.

그리고 저희집이 컴파일하고 링크(맞나?) 하여튼 컨트롤 F5누르면 하는 거 할때, 첫번째 컴파일은 괜찬더만

Linking...
Text19.obj : error LNK2005: _main already defined in ++에 대해서.obj
Debug/++에 대해서.exe : fatal error LNK1169: one or more multiply defined symbols found
Error executing link.exe.

두번째 부터 하려면 이런 구문에 오류가 뜨네요, 물론 컴파일에는 문제 없구요;;
왜 그러시는지 알려주시고, 어떻게 원래대로 만드나 혹시 아시는 분 알려주세요.