ABAP-值传递和引用传递的区别

 1 "在使用子例程是用USING和CHANGING有值传递和引用传递两种方式
 2 DATA: num1 TYPE i,
 3       num2 TYPE i,
 4       sum TYPE i .
 5       
 6 *引用传递      
 7 PERFORM a USING num1 num2 CHANGING sum .
 8 "传参数时将资料的存放地址(address)传至参数中, 也就是子程序中的参数变量与外部实际变量共享地址内的值, 又称为 Call By Address, "如果在子程序中地址中的值改变了, 外部实际变量的值也会跟着改变.
 9 "USING和CHANGING都用了引用传递,所以num1,num2和sum的值都会变,而且不用等子例程运行完就会改变
10 
11 *值传递
12 PERFORM b USING VALUE(num1) VALUE(num2) CHANGING VALUE(sum) .
13 "传参数时将数据的值复制一份至另一地址中, 所以在子程序中参数变量值改变, 并不会影响外部实际变量的值.
14 "USING和CHANGING都用了值传递,num1和num2用的是USING,值不会发生改变,sum用的是CHANGING,值会发生改变,并且是子例程结束才会  "改变
posted @ 2022-06-20 16:57  TigerMan  阅读(116)  评论(0编辑  收藏  举报