반응형
포인터 배열과 배열 포인터를 함수 인자로 넘기는 예시
포인터 배열을 함수 인자로 넘기기
포인터 배열을 함수에 넘길 때는 포인터의 배열이라는 것을 명확하게 해주어야 합니다. 아래 예시를 참고하시면 됩니다.
#include <stdio.h>
void printPointerArray(int *arr[], int size) {
for (int i = 0; i < size; ++i) {
printf("%d ", *arr[i]);
}
printf("\n");
}
int main() {
int a = 1, b = 2, c = 3;
int *ptrArray[3] = {&a, &b, &c};
printPointerArray(ptrArray, 3);
return 0;
}
배열 포인터를 함수 인자로 넘기기
배열 포인터를 함수 인자로 넘길 때는 배열의 크기도 함께 지정해야 합니다. 아래는 예시 코드입니다.
#include <stdio.h>
void printArrayPointer(int (*arrPtr)[3], int rows) {
for (int i = 0; i < rows; ++i) {
for (int j = 0; j < 3; ++j) {
printf("%d ", arrPtr[i][j]);
}
printf("\n");
}
}
int main() {
int arr[2][3] = {
{1, 2, 3},
{4, 5, 6}
};
printArrayPointer(arr, 2);
return 0;
}
주요 차이점
- 포인터 배열: 각 배열 요소가 포인터입니다. 따라서 함수 매개변수는
int *arr[]
와 같은 형태를 취합니다. - 배열 포인터: 포인터가 배열을 가리킵니다. 따라서 함수 매개변수는
int (*arrPtr)[3]
과 같은 형태를 취합니다.
이 두 가지는 종종 혼동되기 쉽지만, 선언 방식과 사용 방식을 통해 구분할 수 있습니다. 함수의 매개변수로 어떻게 넘기는지를 이해하는 것은 이 구분을 명확히 하는 데 도움이 됩니다.
반응형
'온라인 멘토와 함께하는 공부 > 인공지능' 카테고리의 다른 글
[ChatGPT] GPTs, 크로키 (5) | 2023.11.26 |
---|---|
달라진 GPT, GPTs (8) | 2023.11.15 |
[C언어] 포인터 배열과 배열 포인터의 차이 (60) | 2023.10.26 |
[C언어] C언어에서의 배열 (59) | 2023.10.25 |
[C언어] C언어에서의 포인터 개념 (72) | 2023.10.24 |