delphi – 指向同一数组的指针数组

delphi – 指向同一数组的指针数组,第1张

概述我读过这样一段Delphi代码: sample1 = ARRAY[1..80] OF INTEGER; psample =^sample1;VAR function :ARRAY[1..70] OF psample; 根据我的理解,程序员试图声明一个包含70个指针数组,每个指针指向一个sample1数组. 所以当我写: function[1]^[1] := 5;function[1 我读过这样一段Delphi代码:

sample1  = ARRAY[1..80] OF INTEGER; psample =^sample1;VAR  function :ARRAY[1..70] OF psample;

根据我的理解,程序员试图声明一个包含70个指针的数组,每个指针指向一个sample1数组.

所以当我写:

function[1]^[1] := 5;function[1]^[2] := 10;

然后 :

function[n]^[1] := 5 function[n]^[2] := 10; ( n = 2 to 70)

那是对的吗 ?

解决方法 您的代码示例缺少一些信息,因为您没有说明函数是如何定义的.这意味着您无法得出您试图绘制的结论.

当然,由于函数是Pascal中的保留字,因此该代码甚至无法编译.我现在假设该变量被称为f.

考虑以下定义:

type  sample1 = array [1..80] of integer;   psample = ^sample1;var  f : array [1..70] of psample;

这里,sample1和psample是类型. sample1是描述80个整数数组的类型. psample是指向sample1的指针.

接下来定义名为f的变量.它是一个70磅样本的数组.

现在,在你甚至可以考虑写f [1] ^ [1]时会发生什么之前,我们需要为f的元素分配一些值.

假设我们这样做:

var  sample: sample1;...for i := 1 to 70 do  f[i] := @sample;

现在,对于所有有效的i和j,f [i] ^ [k]指的是与f [j] ^ [k]相同的整数.因此,当你写f [1] ^ [1]:= 42时,你也将该值赋给f [2] ^ [1],f [3] ^ [1],依此类推.

另一方面,你可以这样做:

var  samples: array [1..70] of sample1;...for i := 1 to 70 do  f[i] := @samples[i];

现在每个f [i]指针指向内存中的不同数组.在这种情况下,分配f [1] ^ [1]:= 42不会修改f [2] ^ [1]或任何其他值的值.

总结

以上是内存溢出为你收集整理的delphi – 指向同一数组的指针数组全部内容,希望文章能够帮你解决delphi – 指向同一数组的指针数组所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1265389.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-08
下一篇2022-06-08

发表评论

登录后才能评论

评论列表(0条)

    保存