
함수에서 값을 받아내는 방식
매개변수를 통해서 값을 받아내는 방식
// 함수 구현 :: 2개의 실수 정보를 받고, 덧셉 결과값 반환
double add(double a, double b) { // 2개의 실수 정보를, 매개변수 통해서 받도록 설정
return a + b;
}
int main() {
double num1, num2;
scanf("%lf %lf", &num1, &num2); // double 선언 후 출력에 "%f" 사용가능하지만 입력시 반드시 "%lf"로 사용해야함
double result = add(num1, num2); // 입력값들을 함수로 보내서 실행(실행한 뒤에는 num1 + num2 값으로 대체된다)
printf("결과값 :: %.1f\n", result);
}
// 함수 구현 :: 2개의 실수 정보를 받고, 덧셉 수행
void add(double a, double b) { // 2개의 실수 정보를, 매개변수 통해서 받도록 설정
a += b;
}
void plus(double* a, double* b) {
*a += *b;
}
int main() {
double num1, num2;
scanf("%lf %lf", &num1, &num2); // double 선언 후 출력에 "%f" 사용가능하지만 입력시 반드시 "%lf"로 사용해야함
printf("현재 num1, num2 값 :: %.1f, %.1f\n", num1, num2);
// 1. call by value(값) 기법 :: num1, num2의 값만 함수로 전달 (변수 통째로 전달 x)
add(num1, num2); // 입력값들을 함수로 보내서 실행(실행한 뒤에는 num1 + num2 값으로 대체된다)
// num1 = 2.5, num2 = 6.8 일 때, add(2.5, 6.8);으로 실행됨. => 값만 전달함. 변수에 변동을 주지 않는다.
printf("call by value의 num1 값 :: %.1f\n", num1);
// 2. call by reference(주로) 기법 :: num1, num2의 주소값을 함수로 전달 (변수를 통째로 전달 o)
plus(&num1, &num2); // 변수의 주소를 함수로 보내서 실행
// num1 = 2.5, num2 = 6.8 이라 가정하여도, add(num1 변수 자체, num2 변수 자체); 로 실행
printf("call by reference의 num1 값 :: %.1f\n", num1);
}