#include <stdio.h>
int sum_call_by_value (int x, int y);
int
sum_call_by_reference (int *x, int *y);
main()
{
int a=3, b=4, c;
int d=3, e=4, f;
c =
sum_call_by_value (a, b);
printf("call by value : a=%d, b=%d, c=%d
", a, b,
c );
f = sum_call_by_reference (&d, &e);
printf("call by
reference: d=%d, e=%d, f=%d
", d, e, f );
}
int sum_call_by_value (int x, int y)
{
int sum=x+y;
x =
123;
y = 456;
return sum;
}
int sum_call_by_reference (int *x, int *y)
{
int sum= *x +
*y;
*x = 123;
*y = 456;
return sum;
}
을 출력하면
call by value : a=3, b=4, c=7
call by reference: d=123, e=456, f=7
로 나오는데,
d=3, e=4인데 왜 d=123, e=456, f=7 로 나옴?
<!-- serverLog: s24 --><!-- __LAZY__ -->
ㅋㅋㅋㅋㅋㅋ 2조2교대 공장이나 가라
포인터의 개념을 몰르는구나
ㄴzz. 난 컴퓨터 전공자가 아니라서, 이 딴거 못한다고 공장 갈 일은 없어.ㅋㅋㅋㅋㅋㅋㅋㅋㅋ
질문 올린걸 부끄럽게 생각마라 저렇게 면박주는놈은 지 올챙이적 생각 못하는 쓰레기니 그냥 무시
call by reference에서 주소값을 넘겨 줬자나
call by reference 함수 내에 지역변수는 x,y 이지만 x,y의 주소값은 메인함수 지역변수인 a,b의 주소값 를 가지고 있으니까
*x = a가 가리키는 주소의 값을 나타내는거지 그래서 값이 123
아 그리고 sum=7 인 이유는 알겠지??
zz 씨ㅣ발놈이공장무시하네 요즘공장직원연봉이 너보다 2배는많은거모르나 중소기업개발자나부랭이새끼가 까부네
zz빼고 다들 감사.
나 국내10위 안에 드는 대학다니고, 컴공 아니니까 공장 갈 일은 없다. 좆문대 zz새끼야!!!!!!!! 더 이상 말하지 zz 따위는 말하지 말자구요. ~_~;; ㅋㅋ