delphi – 指向同一数组的指针数组
发布时间:2020-12-15 09:31:49 所属栏目:大数据 来源:网络整理
导读:我读过这样一段Delphi代码: sample1 = ARRAY[1..80] OF INTEGER; psample =^sample1;VAR function :ARRAY[1..70] OF psample; 根据我的理解,程序员试图声明一个包含70个指针的数组,每个指针指向一个sample1数组. 所以当我写: function[1]^[1] := 5;functio
我读过这样一段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]或任何其他值的值. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |