728x90

'전체 글'에 해당되는 글 55건

  1. 2007.12.13 Call By Value, Value and Result, Reference
728x90

 

> Call By Value, Value and Result, Reference <

 

맨날 Call By Value, Call By Reference만 듣다가 Call By Value and Result는 처음 들어봤다...

DATA: c1, c2, c3.                                   " 변수선언
c1 = c2 = c3 = 'A'.                                  " 초기화

WRITE : / c1, c2, c3.                               " 결과참조를 위한 Print
PERFORM subroutine USING c1, c2, c3.     " 함수호출
WRITE : / c1, c2, c3.                               " 결과참조를 위한 Print

FORM subroutine
         USING
              value(f1)                           " Call By Value
         CHANGING
              value(f2)                           " Call By Value and Result
              f3.                                    " Call By Reference

  f1 = 'B'.
  f2 = 'B'.
  f3 = 'B'.
  WRITE :/ c1, c2, c3.
  WRITE :/ f1, f2, f3.
ENDFORM.

위와 같이 작성이 되었을 경우의 결과는??
 
A A A         <-- 최초
A A B         <-- 최초변수값 (Call By Reference 만 변경)
B B B         <-- SubRoutine 변수값
A B B         <-- 최초변수값 (Call By Reference, Call By Value and Result가 변경)

Call By Value는 통상적으로 쓰이듯이 값만 넘겨줄 뿐이다..
Call By Reference도 통상적으로 쓰이듯이 주소(?)를 넘겨줘서 값의 변화가 바로 적용된다..
Call By Value and Result는 값을 넘겨줘서 사용한 후 Sub Routine이 끝나면 결과로 값의 변화가 적용이 된다...

교육시간에 이거 적느라고 이후에 나오는거 못들었당.... ㅡㅡ;;

 

끝.

반응형
Posted by Gomtui
,