더블포인터 이해가안되요~
Loseless
더블포인터에 대한 이해더블포인터에서 변수질문 내용 :
#include stdio.h
void maxmin(int *arr, int size, int **mx, int **mn);
int main(void)
{
int arr[5];
int *max, *min;
int i;
for(i=0; i5; i++)
{
printf(정수 입력 : );
scanf(%d, &arr[i]);
}
maxmin(arr, sizeof(arr)/sizeof(int), &max, &min);
printf(최대 : %d, 최소 : %d \n, *max, *min);
return 0;
}
//참조에 의한 호출 .....
void maxmin(int *arr, int size, int **mx, int **mn)
{
int i;
int *max, *min; --여기에서 max와 min은 main의 max와 min의 주소값을받는건가요?그리고 배열 arr은 왜 선언하지않아도 되고 max와 min은 선언해야 되나요????
max=min=arr;//비교를 위해서.....
for(i=0; isize; i++)
{
if(*maxarr[i])
max=&arr[i];
if(*minarr[i])
min=&arr[i];
}
*mx=max;
*mn=min;
-
꺆잉
max와 min 변수는 출력용이고 arr은 입력용이기 때문입니다.
-
에드문드
MaxMin 함수의 max 와 min은 최대와 최소를 구해서 그 값을 main의 max와 min으로 넘겨 줍니다.
arr배열은 형식인수인 int *arr로 주소값을 받았습니다. 그렇기 때문에 굳이 변수를 선언해 형식인수값을 변수로 넘겨줄 필요없이 바로 형식인수로 값을 받아 버리는 겁니다.