제 목 : |
기입형 프로그래밍언어론 질문입니다. |
 |
 |
이 름 : |
박*희 | 작성일 : |
2015년 10월 23일 13시 20분 |
|
 |
 |
|
|
|
|
P119, 4번 문제 Call by Reference인 경우,
int big=48;
void add(int a, int b)
{
big +=10;
a +=2;
b +=4;
}
voin main()
{
int i=2;
add(i, big);
printf("i=%d big=%dn", i, big);
}
**********
add(i,big) = add(2,48) = add(a, b)
이렇게 기억공간 공유되어
big에 10을 더한값은 전역변수 big이 48 -> 58이 되고
a값은 4로 바뀌어 i값으로 전달받고
b값은 48에서 4가 더해져 52가 되는거 아닌지요?
최종 프린트 값이 i=4, big=52 라고 생각하는데
교수님께서는 프린트 되는 big값을 48+10+4로 계산하셨는데
big 값이 바뀐걸 다시 b가 받아서 적용되는건 call by name 이 아닌가 해서 여쭈어봅니다.
매개변수전달 문제는 풀때마다 어렵습니다.ㅠㅠ |
|
|
|
|
|
 |
 |
첨부파일 |
|
 |
 |
|
|