Code Archive/C언어

Step10. Call by Value, Call by Reference

쌍큐 2014. 9. 6. 16:57

- Call by Value(값에 의한 호출)

  메인에서 함수 호출할 때 변수의 주소 보내는 것이 아니라 변수의 값만 보내주기 때문에 

메인에 있는 변수에 영향을 미치지 않는 형태.


void plus(int a, int b){

a++;

printf("%d\n",a+b);

}

void main(){

int a=10,b=20;

plus(a,b); //31 출력

printf("%d %d\n",a,b);//10 20 출력

}


- Call by Reference(참조에 의한 호출)

  메인에서 함수 호출 할때 변수의 값을 보내는 것이 아니라 메인에 있는 변수의 주소를 

보내 주기 때문에 함수에서는 매개변수를 포인터 형태로 받는 함수 형태.


void plus(int *a, int *b){

(*a)++;

printf("%d\n",*a+*b);

}

void main(){

int a=10,b=20;

plus(&a,&b); //31 출력

printf("%d %d\n",a,b);//11 20 출력

}

* Call by Value, Call by Reference가 무조건 따로 나오지는 않고 같이 혼용되어서 사용된다.


'Code Archive > C언어' 카테고리의 다른 글

Step12. 동적 메모리 할당(malloc/realloc)  (0) 2014.09.12
Step11. 구조체(struct)  (0) 2014.09.12
Step9. 데이터 캐스팅  (0) 2014.09.06
Step8. 포인터  (0) 2014.09.06
Step7. 배열  (0) 2014.09.05