delphi7中的一个数组
答案:3 悬赏:40 手机版
解决时间 2021-03-17 16:37
- 提问者网友:謫仙
- 2021-03-16 18:49
delphi7中的一个数组
最佳答案
- 五星知识达人网友:不甚了了
- 2021-03-16 19:59
在函数中如果数组的个数不定,可以使用开放数组参数
实参可以接受静态数组和动态数组
procedure p1(a:array of Byte);
begin
ShowMessage( IntToHex( Integer(@a),2));
ShowMessage(IntToStr(a[0]));
end;
procedure TForm1.btn1Click(Sender: TObject);
var
a:array[0..5] of Byte;
begin
ShowMessage(IntToHex( Integer(@a),2));
p1(a);
end;
function Find(A: array of Char): Integer;
以上函数使用字符数组作为参数传值,其中A:array of Char虽然有着与动态数组
dynamic array相近的形式,但是在这里它并不代表着动态数组。这里A:array of Char
可以使用任意静态或动态数组。
另外,如果一定使A:array of Char为动态数组,则须使用以下形式:
type TDynamicCharArray = array of Char;
function Find(A: TDynamicCharArray): Integer;
例子(e.g.)
function Find(A: array of Char): Integer;
begin
setlength(A,100);//出错,应为setlength只能用于动态数组。
end;
function Find(A: TDynamicCharArray): Integer;
begin
setlength(A, 100);//正确。
end;
实参可以接受静态数组和动态数组
procedure p1(a:array of Byte);
begin
ShowMessage( IntToHex( Integer(@a),2));
ShowMessage(IntToStr(a[0]));
end;
procedure TForm1.btn1Click(Sender: TObject);
var
a:array[0..5] of Byte;
begin
ShowMessage(IntToHex( Integer(@a),2));
p1(a);
end;
function Find(A: array of Char): Integer;
以上函数使用字符数组作为参数传值,其中A:array of Char虽然有着与动态数组
dynamic array相近的形式,但是在这里它并不代表着动态数组。这里A:array of Char
可以使用任意静态或动态数组。
另外,如果一定使A:array of Char为动态数组,则须使用以下形式:
type TDynamicCharArray = array of Char;
function Find(A: TDynamicCharArray): Integer;
例子(e.g.)
function Find(A: array of Char): Integer;
begin
setlength(A,100);//出错,应为setlength只能用于动态数组。
end;
function Find(A: TDynamicCharArray): Integer;
begin
setlength(A, 100);//正确。
end;
全部回答
- 1楼网友:拜訪者
- 2021-03-16 22:39
是错6个吗 你怎能终止循环呢?? 最后一个end后应加。 。
- 2楼网友:持酒劝斜阳
- 2021-03-16 21:29
只有全局变量才能赋初始值,而且14个值都要赋满
var
sarray: array[0..13] of Double = (1.0,1.2,1.4,1.8,2.0,2.2,2.5,2.8,3.0,3.2,3.5,4.0,4.5,5.0);
一定放到全局变量中。
这个位置就行:
var
Form1: TForm1;
implementation
{$R *.dfm}
var
sarray: array[0..13] of Double = (1.0,1.2,1.4,1.8,2.0,2.2,2.5,2.8,3.0,3.2,3.5,4.0,4.5,5.0);
procedure TForm1.FormCreate(Sender: TObject);
begin
ShowMessage(FloatToStr(sarray[1]));
end;
end.追问“0x0049dc8a”指令引用的“0x015af590”内存。该内存不能为“written”
“0x0049f88”指令引用的“0x015af58a”内存。该内存不能为“read”
在每台电脑上都会出现类似的问题,我认为不是电脑的问题 是在编程的时候什么地方出错了。 这个又是怎么回事啊
var
sarray: array[0..13] of Double = (1.0,1.2,1.4,1.8,2.0,2.2,2.5,2.8,3.0,3.2,3.5,4.0,4.5,5.0);
一定放到全局变量中。
这个位置就行:
var
Form1: TForm1;
implementation
{$R *.dfm}
var
sarray: array[0..13] of Double = (1.0,1.2,1.4,1.8,2.0,2.2,2.5,2.8,3.0,3.2,3.5,4.0,4.5,5.0);
procedure TForm1.FormCreate(Sender: TObject);
begin
ShowMessage(FloatToStr(sarray[1]));
end;
end.追问“0x0049dc8a”指令引用的“0x015af590”内存。该内存不能为“written”
“0x0049f88”指令引用的“0x015af58a”内存。该内存不能为“read”
在每台电脑上都会出现类似的问题,我认为不是电脑的问题 是在编程的时候什么地方出错了。 这个又是怎么回事啊
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯