728x90
만약 2차원 배열을 함수의 인자로 전달해서(포인터 형식으로),
그 2차원 배열을 정렬한다고 가정해보자.
void sort(int (*arr)[5], int n)
{
int i = 0;
int j = 0;
int least;
int temp;
for(i = 0; i < 4; i++){
least = i;
for(j = i + 1; j < 5; j++){
if(arr[n][least] > arr[n][j])
least = j;
}
temp = arr[n][i];
arr[n][i] = arr[n][least];
arr[n][least] = temp;
}
}
2차원 배열을 포인터 형식으로 받고, n번째의 행을 정렬하는 함수다.
여기서 봐야할 부분은
void sort(int (*arr)[5], int n)
이다.
int (*arr)[5] 이부분 이다.
이것은 배열을 가리키는 포인터로, "int형의 [5]열짜리 배열을 가리키는 포인터를 파라미터로 사용하겠다."라는 뜻이다.
void sort(int *arr, int n)
이렇게 하면 안된다.
728x90
'C프로그래밍 > 개인 공부' 카테고리의 다른 글
함수에서 인자를 포인터로 받으면 무조건 원본 변경이 될까? (0) | 2023.05.17 |
---|---|
C언어 - 함수의 포인터 (0) | 2023.01.07 |
C언어 - 포인터의 배열, 배열의 포인터 (0) | 2023.01.05 |
C언어 - 이중 포인터 (0) | 2023.01.03 |
C언어 - 연결리스트 (0) | 2022.12.20 |