교수님들마다 함수인자라 표현하시는 분도 계시고, 파라미터라 말씀하시는 분도 계시고, 아규먼트라 말씀하시는 분들도 계시더군요;;
저는 인자라는 표현을 사용하겠습니다.
@ 함수 인자
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 |