반응형
SMALL

학습목표

1. 함수의 개념과 중요성을 이해할 수 있다.

2. 함수의 선언, 정의, 호출, 자료 전달 방법에 대해 이해할 수 있따.

3. 표준함수에 대한 헤더 파일을 사용할 수 있다.

4. 변수의 유효번위와 기억 클래스를 이해할 수 있다.

 

주요 용어

사용자 정의 함수, 함수 호출, 매개변수, return

 

5.3.4 함수의 호출

- 함수는 일종의 부 프로그램

- 따라서 함수의 호출이 있어야 한다.

- 함수의 호출 방법

  >> 함수명과 매개변수 나열

 

void main()                 
{                             
   int d;
   d = sum(10,20);      : 함수의 호출  호출 완료 후 복귀
   printf("%d\n", d);
}
int sum(int x, int y) 
{
   int z;
   z = x + y;           ↓
   return z;
③ : 다시 void main  안으로

(1) 매개 변수

1) 실 매개변수

  : 함수를 호출하는 함수(호출함수)에 쓰이는 매개변수

 

2 )형식 매개변수

  : 호출당하는 함수(피 호출함수)에 쓰이는 매개변수

 

>> 실 매개변수와 형식 매개변수 사이에는 자료형과 변수의 개수가 일치해야 한다.

 

매개 변수 의 예

void main(){

                 ... 

              fcn 1 (a, b, c);     

// 호출함수 로서 a, b, c는 실 매개 변수

                 ...                }

       fcn1(int x, int y, double z){ 

// 피 호출함수로서 x, y, z는 형식매개변수

          ................... }

>> 자료형이 일치하지 않을 경우는 형 변환이 발생

 

(2) return 문

 피호출함수의 형식매개변수에 의해 계산된 결과값은 호출함수에 반환해야하며,

이때 결과 값 반환 방법으로 return 문이 사용된다.

형식 : return(수식);
        return 수식 ;

기능 : 함수를 끝내고 제어와 함수 수행결과를 호출 함수로 넘긴다.
사용 예 : return 0;                >> 상수 0 반환(정상적인 종료를 의미)
            return 1;                >> 상수 1 반환
            return x;                >> X 값 반환
            return (x+y*z);        >> 수식의 결과 값 반환
            return (sum(10,20)); >> 다른 함수 호출
      

// return 문의 사용 예

#include <stdio.h>
int max(int x, int y);
int min(int x, int y);
void main(){
   int i, j;
   printf("정수 2개를 입력하시오 : ");
   scanf("%d %d", &i, &j) ;
   printf("max(%d %d) = %d \n", i, j, max(i, j));
   printf("min(%d %d) = %d \n", i, j, min(i, j));  }

int max(int x, int y) {  // max( ) 함수 정의 
   return( x > y ? x : y) ; } // 최댓값 반환 

int min(int x, int y) {  // min( ) 함수 정의 
   if(x>y) 
      return y; //최솟값 반환 
   else 
      return x; } // 최댓값 반환 

 

 

// 함수의 여러 가지 사용 예

#include <stdio.h>
int sum(int, int);
void test();
void main(){
   int s; 
   test();                  // 단순한 함수 호출
   sum(10, 20);         // 단순한 함수 호출(호출 결과가 저장되지 않음)
   s = sum(30, 40);    // 함수 호출 결과를 변수 s에 저장 
   printf("sum from 30 to 40 = %d \n", s);
   printf("sum from 100 to 200 = %d \n", sum(100, 200)); }
                         // 함수 호출 결과를 직접 사용 

void test(){ 
   printf("함수의 여러 가지 사용 방법 \n"); }  

int sum(int a, int b){ 
   int i, s = 0; 
   for(i =a; i<=b; i++) 
      s = s +i; 
   return s; } 

반응형
LIST

+ Recent posts