티스토리 뷰

BackEnd/C

[20일차] 1. 이중 포인터

JINSUKUKU 2021. 3. 3. 13:09

2021.03.03.수

이중 포인터 

✔  포인터도 저장공간을 갖는 하나의 변수이므로, 주소 연산을 사용해 포인터의 주소를 구할 수 있다.

✔  그리고 포인터의 주소를 저장하는 포인터는 이중 포인터라고 말한다.

✔  포인터를 저장하는 이중 포인터에 간접 참조 연산을 사용하면, 저장된 포인터의 주소를 반환한다.

✔  포인터의 주소를 저장한 이중 포인터에 간접 참조 연산을 수행하면, 가리키는 대상인 포인터를 사용할 수 있다.

 

✔  포인터 변수의 배열은 포인터를 요소로 갖는 배열. 간접 참조 연산을 수행하면 저장된 주소를 반환한다.

✔  이중 포인터는 포인터의 주소를 저장. 간접 참조 연산을 수행하면 저장된 포인터를 사용해 대상을 가리킬 수 있다.

 

 

이중 포인터의 선언
int **ppi;

✔  이중 포인터를 선언할 때에는 *을 2개 사용한다.

✔  첫번째 별은 ppi가 가르키게될 자료형이 int * 즉, 포인터임을 의미하고

✔  두번째 별은 ppi 자신이 포인터임을 뜻한다.

 

 

이중 포인터의 사용

✔  이중 포인터를 선언 후에 사용할 때에는 변수명을 사용한다.

✔  아래의 원칙을 적용하면 포인터 연산에 대해 이해할 수 있다.

 

     1. 이중 포인터를 변수명으로 사용하면 그 안의 값, 즉 저장된 주소값을 의미한다.

     2. 이중 포인터에 & 연산을 하면 이중 포인터 변수의 주소가 된다.

     3. 이중 포인터의 변수명에 간접 참조 연산* 을 하면, 저장된 주소값을 반환한다.

 

 

 

다중 포인터
int ***ppp;

✔  3중 이상의 포인터도 사용할 수 있지만 프로그램의 가독성을 떨어트리므로 가능하면 사용하지 않는다.

✔  3중 이상의 포인터를 다중 포인터라고 한다.

 

 

 

 

[참고] 한빛미디어-혼자 공부하는 C언어 유튜브 강의 / 엘리스 트랙-혼자 공부하는 C언어 / 길벗-C언어 코딩 도장 / 위키백과

 

댓글
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
최근에 올라온 글
글 보관함
Total
Today
Yesterday