글
(1) 포인터란?
: 메모리의 어드레스(Address)를 데이터로 취급하는 변수.
- 포인터는 주소값을 저장하기 위한 변수이다.
- 32bit 시스템은 32bit(4byte)의 크기로 주소값을 표현하며, 2의 32승개 즉, 4G 만큼의 주소값을 만들어 낼 수 있다.
- 따라서 32bit 시스템은 32bit로 표현되는 주소값을 저장하기 위해서 포인터변수의 크기 또한 4byte이다.
int var; // int형 일반변수 var 선언 int *p; // int형 포인터 변수 p 선언 p = &var; // 포인터 변수 p에 일반변수 var의 주소값을 저장 |
- 변수 var의 주소값을 포인터 변수 p에 저장 할 수 있다.
- 다시말해, 포인터변수 p는 4byte의 크기에 변수 var의 주소값을 저장하고 있다.
- 이 상태를 '포인터 변수 p가 일반 변수 var를 가리키고 있다' 라고 한다.
(2) 포인터 타입과 선언
: 포인터를 선언할 때에는 * 연산자를 사용한다.
또한 포인터에는 가리키고자 하는 변수의 자료형에 맞추어 적절한 타입의 포인터를 선언해야 한다.
- int *a : int형 변수의 주소값을 지닐 수 있는 int형 포인터
- char *b : char형 변수의 주소값을 지닐 수 있는 char형 포인터
- double *c : double형 변수의 주소값을 지닐 수 있는 double형 포인터
(3) 포인터를 통한 데이터 접근
○ 직접 접근 : 변수 var를 직접 호출해서 데이터에 접근. ( var = 10; )
○ 포인터를 통한 간접 접근
: 포인터 변수 p가 var을 가리키고 있는 상태에서는 포인터 변수 p를 통해 간접적으로 var의 데이터에 접근. ( *p = 10; )
※ '*'연산자는 보통 "p가 가리키고 있는 변수의 값을 가져온다." (p가 가리키고 있는 곳 = 장소)
※ 참고자료 : http://2xx195.tistory.com/8
'P rogramming > C Language' 카테고리의 다른 글
2차원 배열과 포인터 이론 (4) | 2011.10.26 |
---|---|
1차원 배열과 포인터 이론 (0) | 2011.10.26 |
2차원 배열의 연산 (0) | 2011.10.25 |
2차원 배열의 포인터 (0) | 2011.10.25 |
배열과 포인터의 관계 (0) | 2011.10.25 |
RECENT COMMENT