我不理解源代码PL/I:
DCL AA CHAR(10) BASED(P1);
DCL BB CHAR(10) INIT ("BBBBBBBBBB");
DCL CC CHAR(10) INIT ("CCCCCCCCCC");
DCL DD CHAR(10) INIT ("DDDDDDDDDDD");
DCL ADDR BUILTIN;
DCL P1 PTR;
DCL P2 PTR;
P1 = ADDR(BB);
Display(AA);
P1 = ADDR(P2);
Display(AA);
P2 = ADDR(DD);
Display(AA);帮助我理解display变量AA。非常感谢
发布于 2015-05-03 23:52:35
以我的浅见,它是这样的;
让我们同意变量AA表示10个字节的存储,开始于DSA中P1的指针地址
语句P1 = ADDR( BB );使P1指向BB的地址,然后显示(AA);将显示等于BB的10个字符字节
语句P1 = ADDR( P2 );使P1指向DSA中的另一个地址,即变量P2所在的位置。因此,display-语句显示了10个字节的存储空间,其中4个字节等于...目前还没有什么可预测的,因为指针P2还没有初始化
语句P2 = ADDR( DD );将DD的地址移动到P2,下面的dispaly语句给出了DD的地址在最前面的4个字节中,接下来的6个字节恰好是DSA中的下一个字节-但是这6个字节保持不变
https://stackoverflow.com/questions/29597943
复制相似问题