-
끄적 끄적 정리 - 2 (CallbyValue, CallbyReference)Programming/C 2011. 1. 14. 01:37
1. Call by Value
함수 호출의 한 형태로, “값의 복사”를 통해 호출한다.
ex)
void abc(int a, int b);
int main(void) {
int val1=10,val2=20;
printf(“%d %d”, val1,val2);
abc(val1,val2);
return 0;
}
void abc(int a, int b) {
int temp;
temp=a;
a=b;
b=temp;
printf(“%d, %d”,a,b);
}값을 단순히 복사한 것이기 때문에 a,b의 값은 변할 수 있어도, val1,val2의 값은 변하지 않는다.
한마디로 단순히 값을 참조하는 것이다.
2. Call by Reference
값 참조 + 변경
void abc(int *a, int *b);
int main(void) {
int val1=10,val2=20;
printf(“before:%d %d\n”, val1,val2);
abc(&val1,&val2);
printf(“after:%d %d\n”, val1,val2);
return 0;
}
void abc(int *a, int *b) {
int temp;
temp=*a;
*a=*b;
*b=temp;
}'Programming > C' 카테고리의 다른 글
error LNK1104: cannot open file "Debug/***.exe' (0) 2011.09.25 Visual Studio 2010 단축키 (0) 2011.09.12 끄적끄적 정리 - 1 (0) 2011.01.13 error C3861: 'back_inserter': identifier not found (0) 2010.06.09 Error C2601 (0) 2010.05.26