더블포인터....
눈
질문 제목 : 더블포인터이해 아래 프로그램은 사용자로부터 5개의 정수를 입력받은뒤
최대숫자와 최소숫자를 출력하는프로그램입니다..아래 소스에서 maxandmin함수의 int형포인터 max, min이 가리키는에 뭔질 모르겠네요..
그리고 이 소스의 전반적인 해석을 못하겠네요 ;
알려주세요~
질문 내용 :
#include stdio.h
void maxandmin(int *arr, int len, int **mxptr, int **mnptr)
{
int * max;
int * min;
int i;
max=min=&arr[0];
for(i=0; ilen; i++)
{
if(*max arr[i])
max=&arr[i];
if(*min arr[i])
min=&arr[i];
}
*mxptr=max;
*mnptr=min;
}
int main(void)
{
int * maxptr;
int * minptr;
int arr[5];
int i;
for(i=0; i5; i++)
{
printf(정수입력%d: , i+1);
scanf(%d, &arr[i]);
}
maxandmin(arr, sizeof(arr)/sizeof(int), &maxptr, &minptr);
printf(최대: %d, 최소: %d \n, *maxptr, *minptr);
system(pause);
return 0;
}
-
갤1 2024-04-18
함수속 포인터 max min 는 말 그대로 최대값과 최소값을 넣을 변수들입니다.
간단히 해석하자면
1. 배열 속에 5개의 원소 {5, 7, 3, 1, 8} 이 있다고 합시다.
2. max와 min 에 첫 원소인 5가 들어갑니다.
3. if 문으로 7과 max를 비교하여 max보다 7이 크기 때문에 max에 넣습니다.
4. 7보다 min(5)가 작기 때문에 그냥 min값은 5입니다.
5. 위를 반복하여 비교를 해가며 max값에는 점차 큰 수가