반응형

교수님들마다 함수인자라 표현하시는 분도 계시고, 파라미터라 말씀하시는 분도 계시고, 아규먼트라 말씀하시는 분들도 계시더군요;;

저는 인자라는 표현을 사용하겠습니다.

 

@ 함수 인자

int add(int a, int b);

이런 식으로 함수가 선언되어 있다면, 맨 앞에 int는 리턴형이라는 것쯤은 이제 다 아실겁니다.

그 뒤에 add는 함수이름이죠? 사용자가 마음대로 정할 수 있는 부분이고요.

(int a, int b) 괄 호안의 int a, int b이 두 놈이 이제부터 살펴 볼 함수인자입니다.

인자는 반드시 있어야 되는 것도 아니고 한 개가 아닌 복수개가 될 수 있습니다.

#include<stdio.h>

void pnt(char a);

 

void main()

{

    char c='s';

    pnt(c);

 

    

    pnt('o');

}

 

void pnt(char a){

    printf("pnt 함수의 인자로 넘어온 값은 ? [%c] 입니다.\n",a);

}

인자가 1개인 함수 pnt() 입니다.

문자 하나를 받아서 출력 하구요.

메인 함수를 보시면 char 형 변수 c에 s를 넣었고 그 값을 pnt함수의 인자로 넘겼습니다.

두 번째 pnt('0'); 호출에서는 변수에 담지 않고 문자를 바로 인자로 사용 하였습니다.

 

그리고 c라는 변수명을 함수의 인자로 넘겼지만 pnt 함수 내부에선 a라는 함수로 사용된 것을 볼 수 있습니다. 저 부분을 주의 하셔서 사용하셔야 해요~

 

#include <stdio.h>

double sum(int a, double b);

main()

{

 

    int a;

    double ddd=1.5;

    double returngab;

    

    scanf("%d",&a);

    

    returngab=sum(a,ddd);

    

    printf("%f",returngab);

 

}

 

double sum(int a, double b){

    return a + b;

}

단순히 제가 입력한 값에다가 1.5를 더한 값을 리턴하는 sum함수입니다.

 

 

결과에서 3은 제가 입력한 값이고

4.500000은 리턴된 값입니다.

 

위에 소스와 같은 결과가 나오는 소스이지만 조금은 다른 소스입니다. 한번 비교해보세요^^;

#include <stdio.h>

double sum(int a);

main()

{

    int a;

    double returngab;

    scanf("%d",&a);

    returngab=sum(a);

    

    printf("%f",returngab);

    

}

 

double sum(int a){

    double ddd=1.5;

    

    return a + ddd;

}

무엇이 달라 졌는지 감이 오시나요?

인자가 하나로 줄었고

ddd 변수가 sum() 함수 내부에서 선언 및 초기화 되었습니다.

 

 

좀더 복잡하게 끄적여 본 함수..pnt()입니다.

#include<stdio.h>

int pnt(char c, double a, int b);

 

void main()

{

    double ddd=0.5;

    int iii=150;

    char ccc='a';

 

pnt(ccc,ddd,iii);//호출1

 

pnt('b',1.9,225);//호출2

    

 

printf("pnt 함수의 리턴 값 : %d", pnt('c',1.5,312)); //호출 3

}

 

int pnt(char a, double b, int c){

    

    printf("char = %c ",a);

    printf("double = %f ",b);

    printf("int = %d \n",c);

 

    return c;

}

호출 1은 변수에 담긴 값들을,

호출 2는 직접 값들을 넣어서,

호출 3 은 printf() 함수 내부에서 호출 되었습니다.

 

그리고 호출 3에서는 리턴값을 출력 하도록 하였습니다..

 

 

함수의 인자로는 c언어에서 지원하는 변수형들, 포인터변수, 배열 등 다양한 값이 넘어가지만 아직까진

다룬적이 없으므로 나중에 다시 한번 설명할게요.

 

반응형

'IT > Programing' 카테고리의 다른 글

c언어 for문 별찍기  (0) 2013.11.05
c언어 함수(function) 리턴(retune)  (2) 2013.10.29
c언어 함수(function)  (0) 2013.10.28

+ Recent posts