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,值会发生改变,并且是子例程结束才会 "改变
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!