본문 바로가기

C

[4] 이중 포인터(포인터의 포인터)

728x90

포인터 변수라는 것은 주소를 저장하는 변수입니다.

그래서 포인터의 포인터는 "주소가 값으로 저장된 변수의 메모리 주소"입니다.

 

포인터의 원리를 알면 쉽게 생각할 수 있습니다.

code-myself.tistory.com/10

 

포인터

이번에는 C언어의 포인터를 공부해 보겠습니다. 먼저, 포인터를 알아보기 전에 "어드레스"라는 것을 보겠습니다. 어드레스는 메모리의 주소. 즉, 주소 값입니다. 주소 값이란 변수 등이 들어가

code-myself.tistory.com

 

선언을 할 때는 아래와 같이 합니다.

포인터를 선언할 때 사용하는 *를 두 번 사용합니다.

 

이것을 간접 참조(역참조)할 때는 *를 하나 쓸 때마다 가리키는 주소의 값을 차례대로 나타냅니다.

이중 포인터 c를 1번 *로 참조할 때는 b의 값(주소 값)을 나타내고 **처럼 2번 쓸 때는 a의 값을 나타냅니다.

 

이중 포인터 참고자료

dojang.io/mod/page/view.php?id=279

 

C 언어 코딩 도장: 34.6 이중 포인터 사용하기

지금까지 변수의 포인터를 선언했습니다. 그렇다면 포인터의 포인터도 가능하지 않을까요? 이번에는 포인터의 메모리 주소를 저장하는 포인터의 포인터를 선언해보겠습니다. 포인터를 선언할

dojang.io

 

 

다중 포인터로 무엇을 할 수 있을까?

다중 포인터의 개념이 잡히고 나니 아무리 포인터가 많아져도 결국은 서로 주소로 연결이 되어있을 뿐이라는 것으로 느껴지는 것 같습니다.

그런데 이전에 배웠던 내용이 갑자기 생각납니다. 자료구조 중에 리스트(Linked-List)라는 것이 있었습니다. 리스트도 변수들이 메모리의 어디에 저장이 되어 있던지 간에 포인터로 연결이 돼있다고 했습니다.

다중 포인터와 리스트가 굉장히 비슷해 보이지 않나요?

 

잠깐 찾아봤을 때는 함수 내부들이 어떻게 돌아가는지는 아직 잘 모르겠지만, 겉으로만 봤을 때 다중 포인터와는 조금 달라 보입니다. 하지만 지금은 이 부분을 파야할 이유도 없고, 복잡해 보여서 이루고자 하는 목적을 위해 넘어가도록 하겠습니다.

 

다중 포인터는 리스트 구조를 만들 때 사용됩니다.

구조체 struct로 멤버를 포인터 변수, 값. 이렇게 2개를 선언해서 새로운 형을 만들어 값과 주소를 표시할 수 있는 Linked-List를 만들 수 있다고 합니다. 

 

www.nextree.co.kr/p6506/

 

자료구조: Linked List 대 ArrayList

2014년 모두들 어떤 목적과 계획을 갖고 살고 계신지요? 저는 올 한해 “Go to the Base”를 목표로 여러 계획을 세웠는데요. 그 중 하나가 과거 5년 동안 저를 되 돌아 보고 부족했던 기본 지식을 탄

www.nextree.co.kr

 

728x90

'C' 카테고리의 다른 글

[6] 문자열과 포인터  (0) 2021.04.24
[5] 함수와 배열인수  (0) 2021.04.23
[3] 배열과 포인터의 관계  (0) 2021.04.22
[2] 인수와 포인터  (0) 2021.04.22
[1] 포인터  (0) 2021.04.21