본문 바로가기
IT/c언어

C언어 이중포인터

by 뉴코딩맨 2023. 7. 14.
이중포인터(Double Pointer)는 포인터를 가리키는 포인터로, 메모리 주소의 값을 가리키고 있는 변수입니다. 이중포인터는 다른 포인터의 값을 변경하거나, 가변 크기의 2차원 배열을 생성하는 등의 용도로 사용됩니다.
 
 

이중포인터의 선언과 사용

이중포인터는 포인터 변수를 선언하고 이를 가리키는 포인터를 선언하여 사용됩니다. 아래는 이중포인터의 선언과 사용 예제입니다.

 

int main() {
    int num = 10;
    int *ptr = # // 포인터 변수
    int **doublePtr = &ptr; // 더블 포인터 변수

    printf("num의 값: %d\n", num);
    printf("ptr이 가리키는 값: %d\n", *ptr);
    printf("doublePtr이 가리키는 값: %d\n", **doublePtr);

    return 0;
}

 

위의 예제에서는 num이라는 정수 변수를 선언하고 초기화합니다. 그리고 ptr이라는 포인터 변수를 선언하여 num의 주소를 가리키게 합니다. 마지막으로 doublePtr이라는 이중포인터 변수를 선언하여 ptr의 주소를 가리키게 합니다.
 

예제와 설명

위의 예제를 실행하면 다음과 같은 결과가 출력됩니다.
 
num의 값: 10
ptr이 가리키는 값: 10
doublePtr이 가리키는 값: 10
 
첫 번째 출력문에서는 num의 값인 10이 출력됩니다. 두 번째 출력문에서는 ptr이 가리키는 값, 즉 num의 값인 10이 출력됩니다. 마지막으로 세 번째 출력문에서는 doublePtr이 가리키는 값, 즉 ptr의 값인 10이 출력됩니다.
 
이중포인터는 포인터의 포인터이므로, 이를 이용하여 다중 포인터 구조를 만들 수 있습니다. 이를 통해 포인터 변수를 간접적으로 조작하거나, 포인터 배열을 사용할 수 있습니다.
 
 

이중포인터의 활용

이중포인터는 주로 함수의 매개변수로 사용되어 포인터 변수의 값이나 주소를 변경하는 데 사용됩니다. 함수 내부에서 매개변수로 전달된 이중포인터를 통해 원래 포인터 변수의 주소에 접근하고 값을 변경할 수 있습니다. 이를 통해 함수 외부에서도 포인터 변수의 값을 수정할 수 있습니다.
 
이중포인터는 다중 배열이나 동적 메모리 할당과 같은 고급적인 데이터 구조를 구현하는 데에도 유용합니다. 예를 들어, 2차원 배열의 경우 이중포인터를 사용하여 행과 열의 크기를 동적으로 지정할 수 있습니다.
 

결론

C언어에서 이중포인터는 포인터를 가리키는 포인터로, 포인터 변수의 값이나 주소를 변경하거나 다중 포인터 구조를 만드는 데 사용됩니다. 이중포인터는 함수의 매개변수로 활용하여 함수 외부에서도 포인터 변수의 값을 변경할 수 있습니다. 또한, 이중포인터는 다중 배열이나 동적 메모리 할당과 같은 고급적인 데이터 구조를 구현하는 데에 유용합니다. 이중포인터는 C언어에서 중요한 개념이므로, 이를 이해하고 활용하는 것이 필요합니다.
 

'IT > c언어' 카테고리의 다른 글

C언어 void 포인터  (0) 2023.07.14
C언어 함수 포인터  (0) 2023.07.14
C언어 3차원 배열  (0) 2023.07.14
C언어 2차원 배열  (0) 2023.07.14
C 언어 if 문  (0) 2023.07.13

댓글