반응형
포인터 배열과 배열 포인터의 차이
포인터 배열 (Array of Pointers)
"포인터 배열"이란 포인터들로 이루어진 배열을 말합니다. 이 배열의 각 요소는 포인터 타입입니다. 예를 들어, 정수 포인터의 배열은 다음과 같이 선언할 수 있습니다.
int *ptrArray[3];
이 예에서 ptrArray
는 정수 포인터 3개를 저장할 수 있는 배열입니다. 각 배열 요소는 정수를 가리키는 포인터입니다.
int a = 1, b = 2, c = 3;
ptrArray[0] = &a;
ptrArray[1] = &b;
ptrArray[2] = &c;
배열 포인터 (Pointer to Array)
"배열 포인터"는 배열을 가리키는 포인터를 의미합니다. 배열 포인터는 배열의 첫 번째 요소를 가리키는 것이 아니라, 배열 자체를 가리킵니다. 배열 포인터는 다음과 같이 선언됩니다.
int (*arrayPtr)[3];
이 예에서 arrayPtr
는 크기가 3인 정수 배열을 가리키는 포인터입니다.
int arr[3] = {1, 2, 3};
arrayPtr = &arr;
주요 차이점
- 타입과 용도: 포인터 배열은 포인터들의 배열이며, 배열 포인터는 배열을 가리키는 포인터입니다.
- 선언 방식: 포인터 배열은 괄호를 사용하지 않고, 배열 포인터는 괄호를 사용하여 선언합니다.
- 포인터 배열:
int *ptrArray[3];
- 배열 포인터:
int (*arrayPtr)[3];
- 포인터 배열:
- 메모리 구조: 포인터 배열은 여러 개의 포인터가 저장된 배열 공간을 가집니다. 배열 포인터는 단일 포인터 변수가 배열을 가리킵니다.
이 두 개념은 C언어에서 자주 혼동되지만, 선언 방식과 사용 방식을 잘 이해하면 쉽게 구분할 수 있습니다.
반응형
'온라인 멘토와 함께하는 공부 > 인공지능' 카테고리의 다른 글
달라진 GPT, GPTs (8) | 2023.11.15 |
---|---|
[C언어] 포인터 배열과 배열 포인터를 함수 인자로 넘기는 예시 (60) | 2023.10.27 |
[C언어] C언어에서의 배열 (59) | 2023.10.25 |
[C언어] C언어에서의 포인터 개념 (72) | 2023.10.24 |
[C언어] C언어 개발 환경 설정 방법 (70) | 2023.10.23 |