본문 바로가기

BackEnd/C

포인터

반응형

0. 포인터란?


포인터는 주소 값을 담을 수 있는 변수나 주소값을 의미하는 상수이다.


말 그대로 int변수가 있고 int 상수가 있으면 point변수가 있고 point상수가 있는것이다.


포인터 변수는 주소값을 저장하기 위한 변수이다. 그리고 포인터에는 포인터가 가리키는 메모리에 대한 정보가 포함되


어 있다. 포인터를 이용한 메모리의 접근을 위해서다. 저장된 주소값의 메모리 공간에 대한 정보도 존재.


포인터 변수는 *연산을 통한 메모리의 접근가능


16bit 시스템에서는 이 변수가 2byte(16bit)이다. 2의 16승은 65536이므로 65536개의 주소를 부여할 수 있다.


32bit 시스템에서는 이 변수가 4byte(32bit) 크기 이다. 2의32승은 4294967296개의 주소를 부여 가능, 4기가 바이트


주소 값의 바이트 수가 크면 클수록 넓은 메모리 공간에 주소 값을 부여할 수 있다.


메모리 공간을 실제로 활용하는 주체는 운영체제이다. 


그리고 운영체제는 메모리 공간을 관리하기 위해서 주소값을 할당한다. 따라서 주소 값이 할당되지 않은 메모리 공간은


운영체제에서 활용할 수 없는 메모리 공간이 되어버린다.



메모리 주소체계


메모리에서 1바이트 크기당 주소값 하나가 주어진다


0x12ff76이라는 하나의 주소값이 가리키는 메모리 공간은 1바이트


int num1을 선언하면 메모리에서 4바이트가 할당되는데 


총4개의 주소값도 할당되는것이다.


그리고 이 int값의 주소값을 구하면 맨 첫번째 주소값이 구해지고 


그 주소값을 담는 변수의 크기는 32bit시스템에서 4바이트 크기에 담기는것이다.









반응형

'BackEnd > C' 카테고리의 다른 글

포인터 변수 선언  (0) 2019.03.12
포인터와 메모리  (0) 2019.03.11
2차원 배열을 함수의 인자로 전달  (0) 2019.03.11
1차원 배열을 함수의 인자로 전달  (0) 2019.03.11
2차원 배열의 각 행의 주소 계산법  (0) 2019.03.10