포인터는 어렵기 때문에 프로그래밍의 로망이기도 합니다.
'포인터와 메모리구조를 이해한다 VS 그런거 모르고 프로그래밍을 한다'
는 오래전부터 논쟁의 대상이었습니다만 그런것과 무관하게
포인터 기술 자체가 프로그래밍에서 깨달음의 희열을 주는 분야이기도 합니다.
고수준(High Level) 프로그래밍을 하면서 0과 1의 세계를 가장 잘 이해할 수 있는 부분이기도 합니다.
컴퓨터는 물리적으로 전압의 차이에 따라 0과 1의 디지털 신호를 처리하여 작동하고 기계어나 이에 대응하는 어셈블리언어(니모닉)로 하드웨어 레벨의 프로그래밍을 할 수 있습니다.
일반적으로 우리가 코딩이라고 부르는 것은 자바, 파이썬, C언어 등의 고수준(High Level) 프로그래밍을 말하는데요. 운영체제를 개발하기 위해 개발된 C언어에서는 특별히 메모리를 바이트 한개씩 조작할 수 있는 포인터를 제공합니다.
C언어 자체가 고수준 언어이면서 0과1을 조작할 수 있는 도구를 가지고 있는 것입니다. 포인터를 사용하는 코딩 방식이 C언어 프로그래밍의 기본이기 때문에 제대로 이해하지 못하면 C언어로 프로그램을 만드는 것은 좀 힘들구요.
C++에서는 객체와 함께 포인터를 알아야 해서 단계적인 학습이 필요합니다.
아래에 포스팅은 C언어 부터 포인터에 관한 자습서를 순서대로 나열했습니다.
링크드 리스트 정도를 만들 수 있다면 기초가 끝난다고 보면 됩니다.
그 다음은 알고리즘 책을 보며 간단한 프로그램부터 만들면서 공부하시면 됩니다.
원래 페이지를 만들었는데 그냥 공지사항으로 바꿨습니다.(공지사항이라는 의미가 없는듯)
1. C언어 5 - 2 | 포인터를 배우기 전에 준비할 것들
C언어 5 - 3 | 포인터 실습 | 포인터 선언, 주소 할당, 변수값 조작
C언어 5 - 4 | 포인터 실습 | const 키워드, 포인터 주소 연산, 이중포인터
C언어 5 - 5 | 포인터 실습 | 바이트 조작 , 리틀엔디안
C언어 6 - 1 | 배열과 포인터 1 (표기법과 배열시작주소)
C언어 6 - 2 | 배열과 포인터 3 배열 요소에 접근,이차원 배열 포인터
C언어 | 배열의 최대값과 최소값 구하기 | 배열 포인터 사용하기
C언어 | 변수 포인터와 배열 포인터 사용하기 | 자료구조
C++ | 포인터 | 메모리 | 2. 힙메모리 (Heap Memory)
C++ | 포인터 | 스택과 힙 | 객체의 생성자와 소멸자
C++ | 포인터 | 힙 메모리에 있는 멤버 속성의 사용과 메모리 해제
C++ | 포인터 | this pointer| C++ this의 의미와 사용법
C++ | 포인터 | const pointer (상수 포인터)
C++ | 포인터 | const 메소드 const 객체와 const 포인터
C++ | 함수에서 여러개의 리턴값 처리 | 포인터와 레퍼런스
C++ | const 포인터 매개변수(객체) | passing object by a const pointer | 레퍼런스의 경우
C언어 7 - 2 | 링크드 리스트 기초 (Linked List) (tistory.com)
C언어 7 - 3 | 링크드 리스트 기초 (Linked List) 요소 추가 및 삭제 함수, 잡설 (tistory.com)
C언어 | 링크드리스트 기초 총정리 | 삽입, 삭제, 정렬, 검색, 메모리 외 (tistory.com)