티스토리 뷰
2021.03.03.수
이중 포인터
✔ 포인터도 저장공간을 갖는 하나의 변수이므로, 주소 연산을 사용해 포인터의 주소를 구할 수 있다.
✔ 그리고 포인터의 주소를 저장하는 포인터는 이중 포인터라고 말한다.
✔ 포인터를 저장하는 이중 포인터에 간접 참조 연산을 사용하면, 저장된 포인터의 주소를 반환한다.
✔ 포인터의 주소를 저장한 이중 포인터에 간접 참조 연산을 수행하면, 가리키는 대상인 포인터를 사용할 수 있다.
✔ 포인터 변수의 배열은 포인터를 요소로 갖는 배열. 간접 참조 연산을 수행하면 저장된 주소를 반환한다.
✔ 이중 포인터는 포인터의 주소를 저장. 간접 참조 연산을 수행하면 저장된 포인터를 사용해 대상을 가리킬 수 있다.
이중 포인터의 선언
int **ppi;
✔ 이중 포인터를 선언할 때에는 *을 2개 사용한다.
✔ 첫번째 별은 ppi가 가르키게될 자료형이 int * 즉, 포인터임을 의미하고
✔ 두번째 별은 ppi 자신이 포인터임을 뜻한다.
이중 포인터의 사용
✔ 이중 포인터를 선언 후에 사용할 때에는 변수명을 사용한다.
✔ 아래의 원칙을 적용하면 포인터 연산에 대해 이해할 수 있다.
1. 이중 포인터를 변수명으로 사용하면 그 안의 값, 즉 저장된 주소값을 의미한다.
2. 이중 포인터에 & 연산을 하면 이중 포인터 변수의 주소가 된다.
3. 이중 포인터의 변수명에 간접 참조 연산* 을 하면, 저장된 주소값을 반환한다.
다중 포인터
int ***ppp;
✔ 3중 이상의 포인터도 사용할 수 있지만 프로그램의 가독성을 떨어트리므로 가능하면 사용하지 않는다.
✔ 3중 이상의 포인터를 다중 포인터라고 한다.
[참고] 한빛미디어-혼자 공부하는 C언어 유튜브 강의 / 엘리스 트랙-혼자 공부하는 C언어 / 길벗-C언어 코딩 도장 / 위키백과
'BackEnd > C' 카테고리의 다른 글
[20일차] 3. 배열 요소의 주소와 배열의 주소 (0) | 2021.03.03 |
---|---|
[20일차] 2. 이중 포인터의 활용 (0) | 2021.03.03 |
[19일차] 3. 포인터 배열 복습 예제 (0) | 2021.03.02 |
[19일차] 2. 3차원 배열/포인터 배열 (0) | 2021.03.02 |
[19일차] 1. 2차원 배열 (0) | 2021.03.02 |