2008.03.20 19:50

포인터와 배열을 알아야 자료구조를 안다!



사용하는 모든 변수는 메모리상의 특정 위치에 저장되고 그 위치는 메모리 주소를 갖는다. 이러한 변수의 메모리 주소값을 포인터라고 하며, 포인터 변수는 주소값을 저장하는 특별한 변수다. 포인터 변수가 어떤 변수의 주소를 저장하고 있다는 것은 포인터 변수가 그 변수를 가리키고 있다(포인트하고 있다)는 의미가 된다. 그래서 포인터 변수를 간단히 포인터라고도 한다.

포인터
- 변수의 메모리 주소 값

포인터변수
-주소값을 저장하는 특별한 변수
-포인터 변수가 어떤 변수의 주소를 저장하고 있다는 것은 포인터 변수가 그 변수를 가리키고 있다(포인터 하고 있다)는 의미
-포인터변수를 간단히 포인터라고 한다.

포인터 변수의 의미
-편지봉투에 받는 사람의 집주소를 쓰면, 그 주소로 편지가 전달되어 집주인이 편지를 받게된다.
-편지 봉투 -> 포인터변수 편지봉투에 쓰는 받는 사람 주소 -> 포인터 변수에 저장된 변수의 메모리 주소


int *p  (int 는 포인터의 자료형이 아니라, 포인터가 가리키고 있는 자료의 자료형을 나타낸다)
int는 4바이트

예 )
int i;
int *ptr = &i;

포인터 선언 형식
자료형  *포인터 변수이름;

포인터 변수의 자료 형에 따른 메모리 액세스 범위
char *ptr;   1바이트
short *ptr;   2바이트
int *ptr;       4바이트

포인터 연산
주소 연산자 : &
변수의 주소를 구하기 위해 사용
변수 앞에 &를 사용하여 그 변수의 주소를 사용

포인터 변수 = &변수;

주소 연산자 사용 예
int i=10;
int *ptr;

ptr=&i;

참조 연산자 : *
저장된 주소에 있는 값(변수에 저장된 값)을 액세스 하는 연산자

사용방법
1. 지정한 값을 포인터가 가리키고 있는 주소에 저장
*포인터변수 = 값;
2. 포인터가 가리키는 주소에 있는 값을 변수에 저장
변수 = *포인터변수;

참조 연산자 사용 예
int i,j;
int *ptr;
ptr = &i;
*ptr=10;
j = *ptr;


Trackback 0 Comment 0