delphi中的数组赋值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了delphi中的数组赋值相关的知识,希望对你有一定的参考价值。

在c语言中

有:a[5]=1,2,3,4,5 ;

那么在 delphi中,这个数组的赋值该怎么写??
下面有人说的对,我就是想在声明数组的时候赋初值,至于初值的内容你们不需要知道,我想知道的只是申明的时候赋值的格式,而不是通过一个过程去实现

//下次把问题描述清楚

如果
a[5]=2,542,7899,26,11;里面的值是无规律的就只在这5个值里挑一个的话
那么我想的到办法只有这样。
你说:数组的大小是10000,

是指b数组(10000个无规律的数成)
(你怎么去设10000个无规律的数?

还是就是指a数组呢,就是你想要10000个数,这些是随机的

这样赋值
只要这样即可:
Const
NUM = 10000; //数组的大小
Var
a: Array[1..NUM] Of integer;
i: integer;
Begin
Randomize;
For i := 1 To NUM Do
a[i] := Random(NUM) + 1;
End;
参考技术A a[5]:=random(100);
random表示取出随机数。
以上表达式是表示a[5]的值在0~100之间的随机数。
参考技术B var
a:=array[1..5] of integer=(1,2,3,4,5)

只有全局变量才能赋初始值,而且5个值都要赋满本回答被提问者和网友采纳
参考技术C 人家好像问的问题是怎么在声明变量的时候赋上初值。
好像Delphi不支持的吧。我只知道可以这样写。
const
A:array[0..3] of integer = (1,2,3,4);

但这个是常量,变量的话不清楚应该怎么一下子把一个数组赋上值。
参考技术D a:=array[1,2,3,4,5] of integer; //创建数组

Randomize; //随机函数

if High(a)>0 then
begin
for lest(a) to High(a) do
bein
i:=random(a);
end;
end;

Delphi 中,Byte数组如何赋值呢?

请给个例子..谢谢...
我照着你的复制的,但是,提示cannot initialize local variables

转换 tbytes 到 integer
procedure tform1.button1click(sender: tobject);
var
bs: tbytes; tbytes 就是 byte 的动态数组
i: integer;
begin
它应该和 integer 一样大小才适合转换
setlength(bs, 4);
bs[0] := $10;
bs[1] := $27;
bs[2] := 0;
bs[3] := 0;
因为 tbytes 是动态数组, 所以它的变量 bs 是个指针; 所以先转换到 pinteger i := pinteger(bs)^;
showmessage(inttostr(i)); 10000
end;
从 bytes 静态数组到 integer 的转换会方便些
procedure tform1.button2click(sender: tobject);
var
bs: array[0..3] of byte;
i: integer;
begin
bs[0] := $10;
bs[1] := $27;
bs[2] := 0;
bs[3] := 0;
i := integer(bs);
showmessage(inttostr(i)); 10000
end;
转换到自定义的结构
procedure tform1.button3click(sender: tobject);
type
tdata = packed record
a: integer;
b: word;
end;
var
bs: array[0..5] of byte; 这个数组应该和结构大小一直
data: tdata;
begin
fillchar(bs, length(bs), 0);
bs[0] := $10;
bs[1] := $27;
data := tdata(bs);
showmessage(inttostr(data.a)); 10000
end;
转换给自定义结构的一个成员
procedure tform1.button4click(sender: tobject);
type
tdata = packed record
a: integer;
b: word;
end;
var
bs: array[0..3] of byte;
data: tdata;
begin
fillchar(bs, length(bs), 0);
bs[0] := $10;
bs[1] := $27;
data.a := integer(bs);
showmessage(inttostr(data.a)); 10000
end;
参考技术A 例子程序:

$apptype console
PROGRAM exp;
var a:array [1..10] of byte=(1,3,5,7,9,2,4,6,8,10);
i:integer;
begin
for i:=1 to 10 do writeln(a[i]);
end.

运行结果:
E:\ygb>dcc32 a.dpr
Borland Delphi Version 15.0
Copyright (c) 1983,2002 Borland Software Corporation
a.dpr(8)
9 lines, 0.12 seconds, 10636 bytes code, 1813 bytes data.

E:\ygb>dcc32 a.dpr
Borland Delphi Version 15.0
Copyright (c) 1983,2002 Borland Software Corporation
a.dpr(7)
8 lines, 0.05 seconds, 10636 bytes code, 1813 bytes data.

E:\ygb>a.exe
1
3
5
7
9
2
4
6
8
10本回答被提问者采纳

以上是关于delphi中的数组赋值的主要内容,如果未能解决你的问题,请参考以下文章

delphi 常量数组赋值给变量数组

delphi怎么把一维数组赋值给memo delphi

delphi二维数组定义 赋值

delphi中能不能把一维数组作为一个元素赋值给另外一个数组?

DELPHI如何获取并赋值给一个对象的方法

delphi 整型赋值为字节,