이중 포인터
개념
- Pointer to Pointer
- 자료가 있는 곳을 이중으로 가리키는 포인터
- 바깥 포인터와 안쪽 포인터로 이루어진다.
- 바깥 포인터가 가리키는 곳에는 값이 아닌, 포인터(주소 값)이 저장되어 있다.
- 안쪽 포인터가 가리키는 주소에 저장된 값이 실제 자료이다.
1
2
3
4
| | address | variable | value |
| 0x100 | a | 100 |
| 0x104 | p | 0x100 |
| 0x108 | q | 0x104 |
|
선언
1
2
| 자료형 **포인터변수명;
int **p;
|
- p : 이중 포인터
- *p : 이중 포인터가 가리키는 곳 - int 형 포인터가 있음
- **p : int 형 포인터가 가리키는 곳
예시
1
2
3
4
5
6
7
8
| char a = 'A', *p, **pp;
p = &a;
pp = &p;
printf("a : %c\n", a);
printf("p : %p\n", p);
printf("pp : %p\n", pp);
printf("*p : %c\n", *p);
printf("**pp : %c\n", **pp);
|
1
2
3
4
5
6
| # 출력
a : A
p : 0x7ffeeb3b5a9c # 변수 a 의 주소
pp : 0x7ffeeb3b5a98 # 변수 p 의 주소
*p : A
**pp : A
|
Reference
C 프로그래밍 (김형근, 곽덕훈, 정재화 공저)
C 프로그래밍 강의 (방송통신대 - 이병래)
Comments