ABAP 指针 FIELD-SYMBOLS
2015-10-12 11:01
429 查看
ABAP中也是存在指针的(指针说法可能欠缺,先这样说吧),为了区分和一般变量,指针用两个尖括号括起来(<fs>).指针用FIELD-SYMBOLS定义,然后要使用指针之前得用ASSIGN初始化,赋值。看一个例子,可以debug看。
在第6行到第8行运行后,<f1>,<f2>,<f3>都指向了num地址,所以此时它们的值都是12.现在因为它们都指向了同一个地址(NUM),所以它们只有一个变化的话,它们也都一起变化。如<f3> = <f3> +1执行后,num,<f1>,<f2>,<f3>都变为13.再执行完num = num +12,之后num,<f1>,<f2>,<f3>都变为25.
指针还经常用在动态定义内表的时候,
REPORT ZTEST_POINTER. DATA: num TYPE i VALUE 12. FIELD-SYMBOLS: <F1>, <F2> TYPE I, <F3> like num. ASSIGN: num TO <F1>, "assign 类似初始化的意思 如果指针没有经过assign就不能做其他操作。 num TO <F2>, <F1> TO <F3>. * num = <F1>. * num = <F2>. * <F1> = <F3>. WRITE: / <F1>, / <F2>, / <F3>. <f3> = <f3> + 1. WRITE: <f3>. num = num + 12. WRITE: / <F1>, / <F2>, / <F3>.
在第6行到第8行运行后,<f1>,<f2>,<f3>都指向了num地址,所以此时它们的值都是12.现在因为它们都指向了同一个地址(NUM),所以它们只有一个变化的话,它们也都一起变化。如<f3> = <f3> +1执行后,num,<f1>,<f2>,<f3>都变为13.再执行完num = num +12,之后num,<f1>,<f2>,<f3>都变为25.
指针还经常用在动态定义内表的时候,
动态定义具有栏位结构的指针类型 DATA: tabname TYPE tabname VALUE 'SFLIGHT' , <span style="white-space:pre"> </span>dref TYPE REF TO data. FIELD-SYMBOLS: <itab> TYPE ANY TABLE. CREATE DATA dref TYPE TABLE OF (tabname). ASSIGN dref->* TO <itab>.如下可定义表的行,其实也就是struct。
FIELD-SYMBOLS: <dyn_table> TYPE STANDARD TABLE, <dyn_wa>, DATA: dy_table TYPE REF TO data, dy_line TYPE REF TO data. CREATE DATA dy_line LIKE LINE OF <dyn_table>. ASSIGN dy_line->* TO <dyn_wa>.
相关文章推荐
- Android bitmap.h is not found for native code compile
- GIT和SVN之间的五个基本区别
- djc xhs
- 电路入门小常识:电路常识性概念——输入、输出阻抗
- 关于ARP欺骗与MITM(中间人攻击)的一些笔记(一)
- Requesting Permissions at Run Time
- Maven学习笔记3-生命周期与插件
- Ubuntu下 ssh : connect to host localhost port 22:Connection refused
- CocoaLumberjack——带颜色的Log
- win7一激活就蓝屏
- MFC一个工程添加多个项目
- Loadrunner:安装LR11.0破解步骤及License
- Git 学习笔记--删除错误提交的commit
- HDU_5500 Reorder the Books
- servlet路径
- 自定义hadoop map/reduce输入文件切割InputFormat 更改输入value的分隔符
- 【springmvc+mybatis项目实战】杰信商贸-34.业务出口报运WebService1
- hbase shell
- 人类社交模拟(python实现)
- iBatis简单入门教程