School Study

[BSP]업무일지 - 20100607 - 임종현

룸훼훼 2010. 6. 7. 17:43
반응형
오늘은?

call by value 와 call by reference에 대하여 알아본다.

먼저 간단 하게 해석하자면..

먼저..
call by value - 인자값을 복사하여 사용함으로 함수가 리턴된 후에는 수정한 해당값이 적용되지 않는다.
즉 호출한 함수에 영향을 미치지 않는다는것이다.


다음은
call by reference - 주소값을 받아와 처리함으로 수정된 결과하나하나가 다 기록된다.
매게변수의 값을 넘기는 것이 아니라, 그 값을 저장하고 있는 메모리의 주소를 넘기게 된다.
즉, 어느 위치에 있는 값을 참조해서 처리하라는 의미..
그러므로 호출하는 함수에서는 그 값을 저장한 변수의 포인터 값을 넘겨야 하며
당연히 호출되는 함수에서는 포인터 변수로 선언되어야 하는것이다..


p.174 예문
swap() 함수.

p.179 예문
두수의 합을 함수의 인수로 받는 프로그램.


main 함수에서 변수 a , b는 초기화 되었지만, c는 초기화 되지 않고 주소값을 실인수로 하여
sum 함수를호출 하였다.
포인터를 사용하지 않고 리턴값을 사용하여 같은 프로그램을 코딩할수 있다.

p.180 재귀함수
함수의 실행부 내에서 그자신을 호출하는 함수를 말한다.
예문

문제점: 결과값을 저장할때 각 값의 메모리에 영역이 생긴다.
결과적으로 메모리를 다잡아 먹는 다는것.

p.188 난수생성 함수
임의수 즉 random으로 수를 생성할때 사용한다.
rand()라고 사용하며 이 함수는 0에서 32767 사이의 정수를 반환한다.


*포인터의 BOSS*



test의 주소값을 불러온다.


각각 사용하는 함수의 주소를 불러 왔다.
우리가 사용하는 문자는 다 숫자라고 이해하면 되겠다.
문자로 코딩하는것을 컴파일러가 숫자 즉 기계어로 바꾸어주고
그것을 실행한다.
이렇게 직접적으로 출력을 해보는것은
모든 함수들이 문자가 아니아 숫자로 되어있다는것을 보여주기 위해서이다.

반응형