이중 포인터
포인터 변수는 메모리 주소를 저장하기 위해 사용되는 변수라고 하였다. 그렇다면 포인터 변수 자체의 주소는 무엇일까?? 이를 저장하기 위해 이중 포인터라는 개념이 등장한 것이다.
●사용법
자료형 **포인터 변수 이름
●이중 포인터 코드 예제
#include <stdio.h>
int main()
{
int* numPtr1; // 단일 포인터 선언
int** numPtr2; // 이중 포인터 선언
int num1 = 15;
numPtr1 = &num1; // num1의 메모리 주소 저장
numPtr2 = &numPtr1; // numPtr1의 메모리 주소 저장
printf("num1 주소: %d\n", numPtr1); //num1 의 주소 출력
printf("numPtr1 주소: %d\n", numPtr2); // numPtr1의 주소 출력
printf("num1의 값 역참조 : %d\n", *numPtr1); //numPtr1을 이용해 num1값 역참조
printf("num1의 값 두번 역참조: %d\n" ,**numPtr2); //numPtr2을 이용해 num1값 역참조
return 0;
}
그림으로 보면 이런 식으로 총 두 번 참조되는 것이다.
'프로그래밍 언어 > C' 카테고리의 다른 글
C언어 22강) 동적메모리할당과 포인터변수를 통한 배열 (2) | 2020.11.12 |
---|---|
C언어 21강) malloc함수로 메모리 사용하기 (0) | 2020.11.07 |
C언어 20강) void 포인터 (0) | 2020.11.06 |
C언어 19강 ) 다양한 자료형의 포인터 (0) | 2020.11.06 |
C언어 18강)++ 포인터와 문자열/ 문자열 포인터에서 인덱스로 접근하기 (0) | 2020.11.06 |