【IT168 技术文章】
关于abap指针的一些资料。
1.什么是abap指针:
在abap里面,fieldsymbol就相当于c语言的指针。如果你定义并且分配了相应的结构或者变量给它,其实它就指向这个结构或者变量的地址,如果修改了fieldsymbol的值,则相应结构或者变量的值也随之更改。
2.如何定义指针:
基本形式:field-symbols.
附加信息:
1....type:定义一个数据类型,然后定义指针
2....typerefto:指针指向类或者接口
3....typerefto:指针指向数据结构
4....typelineof:指针内表的行项目
5....like:指针为数据库表类型
6....likelineof:指针类型为数据库表的行项目
7....type<>:指针为内表
3.如何分配指针:
(1).assignfto.:分配一个指针,包括以下几种类型
1....casting...:主要对unicode系统地操作
1a....casting
1b....castingtypetype
1c....casting...decimalsdec
1d....castinglikef1
2....typetype:直接指定类型
3....decimalsdec:指定小数点位数
4....rangerange:指定范围
(2).分配结构中的某个字段给指针
assigncomponentidxofstructurestructo.
assigncomponentnameofstructurestructo.
(3).分配类的方法给指针
assigndref->*to.
(4).从f开始,是f的n倍长之后的内容分配给指针
assignfincrementnto.
(5).分配局部变量给指针
assignlocalcopy
3a.assignlocalcopyoffto.
3b.assignlocalcopyofinitialfto.
3c.assignlocalcopyofinitiallineofitabto.
4c.assignlocalcopyofmaintablefield(f)to.
(6).assigndynamicj:动态分配指针
4a.assign(f)to.
4b.assignoref->(f)to.
4c.assign(f1)=>(f2)to.
4d.assigntablefield(f)to.
4e.assignlocalcopyofmaintablefield(f)to.
4f.assignlocalcopyof...(f)to.
4.如何取消分配:
unassign.