ADDRDATA 関数は、指定した変数 x で参照される記憶域へのポインターを返します。ADDR と動作が似ていますが、x が可変文字列への参照である場合を除きます。この場合、ADDRDATA は文字列の最初のデータ バイトのアドレスを返します。
myprog: proc options (main); dcl str char(12) var init ('abcdefgh'); dcl s char (4) based; dcl i fixed bin (15) init (99); dcl fb15 fixed bin (15) based; dcl p ptr; p = addrdata(str); put skip list (addrdata(i)->fb15, addr(str)->fb15, p->s, ptradd(addrdata(str),4)->s); end; Results in: 99 8 abcd efgh