#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
void swap(double* pa, double* pb);
void line_up(double* maxp, double* midp, double* minp);
int main(void)
{
double max, mid, min;
printf("실수값 3개 입력 : ");
scanf("%lf%lf%lf", &max, &mid, &min);
line_up(&max, &mid, &min);
printf("정렬된 값 출력 : %.1lf, %.1lf, %.1lf\n", max, mid, min);
return 0;
}
void swap(double* pa, double *pb)
{
double temp;
temp = *pa;
*pa = *pb;
*pb = temp;
}
void line_up(double* maxp, double* midp, double* minp)
{
if (*maxp < *midp) swap(maxp, midp);
if (*maxp < *minp) swap(maxp, minp);
if (*midp < *minp) swap(midp, minp);
}
마지막 line_up 함수 정의할때
swap에 *maxp, *midp 못 쓰고 maxp, midp로 쓰는 이유가 뭐임?
책에도 안 나와있어서 머갈통 터질거같아 ㅅㅂ
해당 댓글은 삭제되었습니다.
아 그냥 외우는거구나 땡큐 ㅜㅜ
파라미터가 포인터인데 거기다 또 하면 이중포인터되잖슴 - dc App
매개변수 pa에 인수 maxp를 복사함. pa는 포인터 변수고 maxp도 포인터 변수임. *maxp가 10일때, 포인터 변수 pa에다가 주소값이 아닌 10을 집어넣어버리면 안되겠지?
Call by value랑 call by reference 다시 공부하셈