모두의 코드
모두의 코드

총 42 개의 강의로 준비된 씹어먹는 C 언어 강좌를 통해 C 언어의 처음부터 끝까지 배우실 수 있습니다! 특히 악명 높은 C 언어의 포인터나, 어려운 개념들을 충실히 짚고 넘어갑니다.

이 강좌는 2010년에 완결되었지만, 지속적으로 개선 및 보완하고 있습니다.

C 언어 문법을 아시는 분들이라면, 씹어먹는 C++ 강좌를 통해 C++ 기초 부터 최근의 C++ 17 까지 모든 내용을 배우실 수 있습니다. C 언어와 C++ 의 기본적인 문법이 비슷하기 때문에, C 언어를 어느 정도 아는 독자를 가정하여 쓰여져 있습니다.

이 강좌는 2020년에 완결되었고 총 50 개의 강좌가 준비되어 있습니다.

사이트 내에서 검색 하기
C 언어 레퍼런스
표준 입출력 라이브러리 stdio.h
문자열 관련 라이브러리 string.h
시간 관련 라이브러리 time.h
C ++ 레퍼런스
문자열 라이브러리 string
알고리즘 라이브러리 algorithm
최근 댓글
최윤식 03.04
포인터에 관해 저와 비슷한 관점을 가지고 계신 분을 발견하니 반갑네요. 저는 포인터를 의존, 소유, 참조로 구분합니다. 포인터 변수를 가지고 있으면 의존한다고 표현하고, 의존하는 경우 개념적으로 소유와 참조 둘 중 하나를 가진다고 생각합니다. 그리고 포인터의 해제 권한은 소유자가 가집니다. 강의나 일반적인 상황에서 말하는 참조는 저에게 의존인 것이죠. 그리고 객체에 의존하는 경우, 객체를 소유하는지 참조하는지를 개념적으로 부여합니다. 포인터에 관한 내용을 보다보면 unique_ptr과 관련하여 소유권이라는 표현이 '하나의 객체는 하나의 포인터만이 가리켜야 한다'로 받아들여지는 것 같습니다. 추측하건데 unique라는 용어 때문인 것 같습니다. 저는 어떤 객체에 여러 객체가 의존하는 것은 문제 삼지 않습니다. 말씀하신 것처럼 unique_ptr의 raw pointer를 넘겨도 개념적으로는 문제될게 없다는 것이죠. 다만, 그 객체를 해제할 수 있는 권한은 unique_ptr만이 가져야만 합니다. 이 원칙을 따르기 위해 말씀하신 방법을 동일하게 사용합니다. 객체를 소유하는 경우 unique_ptr로 객체를 가리키고, 객체를 참조하는 경우는 const raw pointer나 reference로 받도록 하고 있습니다. 개인적으로는 unique라는 용어가 혼동을 줄 수 있다고 생각해서 unique_ptr 대신 OwnershipPtr을 구현해서 사용합니다. 동작은 unique_ptr과 같지만 reference를 리턴하는 멤버 함수를 가집니다.
Beomseo Choi 02.28