【问题标题】:How to read pointer variable value in Turbo Pascal?如何在 Turbo Pascal 中读取指针变量值?
【发布时间】:2014-07-29 17:07:38
【问题描述】:

我在面向对象的 Turbo Pascal 中有以下代码(示例)。此外,还有一些问题要问那些了解 Turbo Pascal 的人 - 因为我找不到任何答案。

type PMyNumber =^TMyNumber;
     TMyNumber = object(TObject)
                 Number1:real;
                 Number2:real;
                 constructor Init(x,y:real);
                end;

问题 #1

我看到类似new(PMyNumber,Init(-4,0)) 的代码 - 它是某种类型的对象构造函数吗?


问题 #2

someVariable := PMyNumber(MyColl[myIndex]^.At(j))^.Number1

我尝试查看MyColl[myIndex]^.At(j) 的值。为此,我打开Evaluate/modyfy 窗口,但在单击Evaluate 按钮后,我收到以下错误 - 怎么了?

此外(我认为这里不需要 ) 字符:


问题 #3

如何读取指针变量值?

【问题讨论】:

    标签: turbo-pascal


    【解决方案1】:
    1. 是的,Init() 是构造函数的名称。

    2. 您无法评估函数调用(At() 是从 TObject 继承的 TMyNumber 的成员函数)。

    3. 如果表示如何解释 Pascal 指针表示法:前导“$”表示十六进制值。第一个值 ($888F) 是段,第二个值 ($8) 是段内的偏移量。 (假设您了解 16 环境中的概念段。)如果您的意思是如何在运行时读取指针的值:使用 seg() 获取段,使用 ofs() 获取偏移量,例如 seg(MyColl[myindex])ofs(MyColl[myindex]).

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-02-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多