웬만하면 C부터 하는게 좋다.


스콧 마이어스 슨상님의 말씀에 의하면

C++은 C와 STL, 템플릿, OOP개념으로 이루어진 연합 언어라고 했어

그래 뭐 ㅋㅋ 시발 할려면 C++부터 돌직구로 시작 할 순 있지

근데 C를 먼저 닦고 C++로 확장해 나가는 것이

깊이있게 공부 할 수 있는 정도(正道)라고 생각한다.

일단 시중에 잘 팔리는 C++ 교재들 대다수가 이미 독자들이 기본적인 C문법을 알고 있다는 가정하에 쓰여있다.

그리고 C++ 교재에선 워낙 C++이 배울 것이 방대하기 때문에
C교재서나 천천히 생각하며 배울 수 있는 중요한 개념들을 많이 가르치지 않는다.

예를 들면
전처리기나 매크로 함수(inline) 개념,
빌드 과정에 관련 개념,
리터럴 문자열의 의미와 메모리에 저장 되는 방식,
배열 식별자의 의미
역참조 연산자(*)와 후치,전치 연산자가 포인터와 결합된 복잡한 계산
함수 식별자의 의미와 함수형 포인터 그리고 nested pointer
함수 호출 방식 (Call by Value, Call by address를 정확히 이해해야 C++ 호출 방식인 Call by Reference에 혼란을 안겪고)
C언어의 Naming Mangling (C가 C++과 다르게 오버로딩이 안되는 이유 라든지)
프로세스 구조 (스택, 코드, bss, 힙,... 등) 이해

이런걸 깊게 C++ 교재에선 친절하게 가르쳐주지 않는다.

고로 결론은 깊이 천천히 C++를 배우고 싶다면 C언어부터 시작하고

급하게 C++ 문법을 마스터해야하는 상황이라면 C++부터 해라