C 언어 이중 포인터 사용 예제
이 코드는 이중 포인터를 다루는 예제 코드입니다.
#include <stdio.h>
int main(void)
{
char* p[] = { "C", "C++", "C#", "Java" };
char** pp = p; // 이중 포인터 선언 및 포인터 배열 참조
//[1] 원본 배열 사용 출력
for (int i = 0; i < 4; i++)
{
printf("p[%d] = %s\n", i, p[i]);
}
//[2] 이중 포인터 사용 출력
for (int i = 0; i < 4; i++)
{
printf("\n*pp = %s", *pp);
pp++;
}
return 0;
}
이중 포인터란?
이중 포인터(double pointer)란 포인터를 가리키는 포인터를 의미합니다. 즉, 포인터 변수의 주소를 가리키는 포인터 변수입니다. 이중 포인터는 메모리 주소의 값을 간접적으로 참조하며, 2차원 배열이나 이차원 연결 리스트를 구현하는 데 자주 사용됩니다.
char* p[] = { "C", "C++", "C#", "Java" };
문자열 포인터 배열인 p를 선언하고, 초기값으로 "C", "C++", "C#", "Java" 네 개의 문자열을 할당합니다.
char** pp = p; // 이중 포인터 선언 및 포인터 배열 참조
p 배열을 가리키는 이중 포인터 pp를 선언합니다.
//[1] 원본 배열 사용 출력
for (int i = 0; i < 4; i++)
{
printf("p[%d] = %s\n", i, p[i]);
}
배열 p에 저장된 각 문자열을 출력합니다.
//[2] 이중 포인터 사용 출력
for (int i = 0; i < 4; i++)
{
printf("\n*pp = %s", *pp);
pp++;
}
이중 포인터 pp가 가리키는 값, 즉 p[0], p[1], p[2], p[3]의 문자열을 출력합니다. pp를 증가시면서 배열 p의 각 요소를 순서대로 출력합니다.
위의 코드는 C언어에서 이중 포인터를 다루는 방법을 보여주는 간단한 예제입니다. 이중 포인터는 포인터를 가리키는 포인터이기 때문에 일반 포인터와는 달리 포인터 변수의 주소를 저장하고, 간접적으로 주소 값을 참조할 수 있습니다. 이러한 특징은 이차원 배열이나 연결 리스트를 구현하는 데 유용하게 사용됩니다. 이 예제 코드를 통해 이중 포인터에 대한 이해도를 높이고, C언어를 더욱 깊이있게 이해할 수 있습니다.
Comments
Comments are closed