본문 바로가기
웹개발

개발 스터디 : 포인터 (pointer)의 개념 / C언어

by 리플러스 2021. 1. 26.
728x90

 

C언어와 포인터

C언어는 대표적으로 리눅스같은 OS를 개발하는데 사용되는 언어다. OS가 뇌, 정신이라면. 몸의 역할을 하는게 PC, 컴퓨터다. C언어는 이런 PC, 컴퓨터 머신을 다루는 역할을 한다. C언어는 PC, 컴퓨터 머신 내부의 메모리나 여유 공간을 나누고, 어떤 일을 어떻게 해야하는지를 명령을 내릴 수 있다.

C언어에서는 포인터의 개념이 매우 중요한데. '메모리나 여유공간'을 체크하고, 실제 그 안에 무엇이 있는지를 확인할 때. 마치 정찰병처럼 그 역할을 해주는 것이 포인터다. 

 

메모리의 구획을 확인하고, 현재 상태를 주시하는 포인터들

 

C언어에서 포인터가 중요한 이유는. 특정행동을 하기 위한 메모리값이 충분하지않거나. 잘못 설정할 경우, 컴퓨터가 다운되거나 CPU가 고장나버릴 수도 있기 때문이다. 고도의 연산을 반복하는 경우 이런 문제가 더 쉽게 일어나는데. 실제 OS는 이런 문제를 해결하기위해 여러가지 안전장치를 만들어두고있다. 그러나 C언어의 경우 OS가 아닌, OS를 만드는 언어이기 때문에. 그런 위험성을 갖고있는 언어라고 생각하면 된다.

 

 

예를 들어 A = 10이다. 같은 고정형 방식과 다르게, 포인터는 대상을 가리키는 손가락 역할을 한다. 그 자체가 특정한 값을 갖고있다기보다는. 손이 가리키는 방향에 있는 것의 값을 가져온다. 포인터도 여러가지 종류가 있지만, 여기서는 핵심적인 개념이 더 중요하니, 자세히 다루지는 않겠다.

 

 

 

이런 포인터는 프로그래밍에서 가장 기초적인 배열 (array)과 함께 사용할 수 있는데. 크기가 정해진 크레인을 생각하면 이해가 쉽다. 포인터는 설정된 단위만큼 움직인다. 그래서 마치 배에 컨테이너를 실을 때 쓰는 크레인처럼, 정확한 단위를 자동으로 움직이게할 수 있다. 

 

 

 

게다가 내부에 들어있는 값들도 개별 주소를 갖고있는데. 포인터 자체의 주소값과, 포인터 내부 첫번째 대상의 주소값은 서로 동일하다. 블럭형태로 구성된 포인터는, 좌측의 가장 첫번째 요소가 가진 값이. 고유한 주소값이라고 생각하면 된다. 

 


 

C언어를 깊게 팔건 아니지만, C언어가 무슨 용도인지, 어떤 목적으로 사용되는지. 그리고 그 언어에서 쓰이는 핵심 개념이 왜 중요한지를 체크해두면. 다른 언어를 배울 때 도움이 된다. 중요한 지점들을 짚고 쭉쭉 진행해보자.

728x90

댓글