원본값 변경 x
PERFORM test using gv_a.
write gv_a . " 10이 출력된다.
FORM test USING VALUE(pv_a). "call by value(using value(값))
pv_a = 11.
ENDFORM.
카피해서 endform에서 원본에 붙여넣기
PERFORM test_ch CHANGING gv_a.
WRITE gv_a. "11이 출력된다.
FORM test_ch CHANGING VALUE(cv_a). "call by value and results
cv_a = 11. "cv_a의 공간이 잡힌다.
gv_a = 20.
ENDFORM. "endform 만났을 때 gv_a = cv_a 된다.
주소값을 기준으로 움직이므로 원본이 변경된다.
PERFORM test_ref CHANGING gv_a.
write gv_a. "20이 출력된다.
FORM test_ref CHANGING p_a. "call by reference
p_a = 11.
gv_a = 20.
ENDFORM.
call by reference는 포인터 개념으로 이해하면 된다.
끝.