C에서 가장 중요한 것 중 하나가 바로 '자료형'이다. C와 C++의 차이점을 알아보기 이전에 C언어에서의 자료형부터 알아보자.
예를 들어 int형인지 아니면 char형인지에 따라, 계산되는 결과 등이 달라지게 때문이다.
또, C에서 우리는 흔히, 위와 같은 기본자료형으로 표현할 수 없는 자료의 경우 구조체를 조합하여 새로운 형식을 만들어내기도 한다.
우리는 C에서 구조체를 '사용자 정의 자료형'으로 구별하였다.
따라서, C에서 자료형과 관련된 핵심 개념을 정리하면 아래와 같다.
보통 처음 C언어를 접하는 경우, 포인터 파트에서 대부분 크게 좌절하게 된다. 몰론 필자도 '포인터'의 개념에 대해서, 깊이 알고있는것은 아니다.
그렇다면, C언어에서 포인터가 어렵게 다가왔던 이유는 무엇일까?
바로, 위에서 설명한 C언어에서의 자료형에 관한 핵심 개념과 자료형간의 관계를 정확히 이해하지 못하였기 때문이라고 할 수 있다.
C++는 C에 ++를 더하여 생긴 이름이다. 그렇다면, ++가 붙여진 이유를 생각하자면, C를 더 개선한 언어라는 생각이 들것이다.
몰론 C언어에서 어려웠던, 포인터는 여전히 C++에 남아있다. 그리고, 계속 문젯거리가 될 수 있다.
다만, C와 C++의 가장 큰 차이점 중 하나는 자료형의 어려운 개념을 쉽게 만들자는데에 있다. 따라서, 자료형의 어려운 개념을 쉽게 이해할 수 있는, 새로운 문법과 더 개선된 자료형들이 갖추어져 있어, C언어에서 포인터를 처음 접했을 때보다, 더 부담감은 줄어들 것이다.
포인터가 어려운 사람들은 보통 "Memory Debugging"을 해본적인 없는 사람들이 대다수 일것이다. 또한 메모리 구조 및 OS개념을 제대로 이해하지 못했다는 것이 원인이 될 수도 있다.
따라서, 앞으로는 error가 발생했다고 하여, 무작정 구글링 하는것이 아닌, 디버거의 기능을 최대로 사용을 하여, 메모리의 변화를 직접 추적을 해보자.
이것이 C++이다 (한빛미디어)
C++ study phase 1을 읽어주셔서 감사합니다.
앞으로는 여러 phase를 통해, 제가 지금까지 공부하였던, C++의 개념들을 복습 차원에서 업로드를 하려고 합니다.
또 이외에도 OS,Network,SQL에 관해서도 여러 phase로 나누어서 개념들을 정리하여 포스팅할 예정이니 한번 봐주시면 감사할 것 같습니당...