数组赋值问题
定义一个integer数组,怎么能一次赋值,就像c中
数组={1,2,3,4,5}
当然数组元素有很多,256个,且无规律
给分20
问题点数:20、回复次数:12Top
1 楼Crob(Take Everything Easy!)回复于 2001-12-31 10:20:20 得分 0
因为数组是连续分配内存的
所以可以直接将数组首地址指向数据区域,数据的长度与数组中元素要一至Top
2 楼qiubolecn(来自差生市)回复于 2001-12-31 10:30:52 得分 0
to Crob(我干嘛这么帅)
那你那一段‘数据区域’,又是怎样赋的值呢????Top
3 楼whether(是否?!)回复于 2001-12-31 10:31:19 得分 0
具体怎么指定?
Top
4 楼tongki_8(矛盾与迟钝)回复于 2001-12-31 10:31:32 得分 0
avr
i:integer;
while i<256 do
begin
数组[i]:=0;
i:=i+1;
end;Top
5 楼007pro(水样天波)回复于 2001-12-31 10:32:30 得分 0
可以这样吗?
arr:=['','','',''];
没试过,仅供参考 Top
6 楼Linux2001(闭关开发中)回复于 2001-12-31 10:33:50 得分 0
不知道你在说什么
如果是赋值那就是: tongki_8() 那样的Top
7 楼whether(是否?!)回复于 2001-12-31 10:33:54 得分 0
说过了,数组元素是无规律的,怎么能都赋0呢Top
8 楼qiubolecn(来自差生市)回复于 2001-12-31 10:35:55 得分 0
老实一点,一个一个赋值,任何取巧办法都是没用的:(Top
9 楼whether(是否?!)回复于 2001-12-31 10:38:47 得分 0
我自己知道一种赋值方法,定义动态数组,然后用VarArrayOf函数赋值
但是256个数组元素不知道是不是太多,反正出问题
=================
auchCRCHi:=VarArrayOf([$0, $C1, $81, $40, $1, $C0, $80, $41, $1, $C0, $80, $41, $0, $C1, $81, $40, $1, $C0, $80, $41, $0, $C1, $81, $40, $0, $C1, $81, $40, $1, $C0, $80, $41, $1, $C0, $80, $41, $0, $C1, $81, $40,
$0, $C1, $81, $40, $1, $C0, $80, $41, $0, $C1, $81, $40, $1, $C0, $80, $41, $1, $C0, $80, $41, $0, $C1, $81, $40, $1, $C0, $80, $41, $0, $C1, $81, $40, $0, $C1, $81, $40, $1, $C0, $80, $41,
$0, $C1, $81, $40, $1, $C0, $80, $41, $1, $C0, $80, $41, $0, $C1, $81, $40, $0, $C1, $81, $40, $1, $C0, $80, $41, $1, $C0, $80, $41, $0, $C1, $81, $40, $1, $C0, $80, $41, $0, $C1, $81, $40,
$0, $C1, $81, $40, $1, $C0, $80, $41, $1, $C0, $80, $41, $0, $C1, $81, $40, $0, $C1, $81, $40, $1, $C0, $80, $41, $0, $C1, $81, $40, $1, $C0, $80, $41, $1, $C0, $80, $41, $0, $C1, $81, $40,
$0, $C1, $81, $40, $1, $C0, $80, $41, $1, $C0, $80, $41, $0, $C1, $81, $40, $1, $C0, $80, $41, $0, $C1, $81, $40, $0, $C1, $81, $40, $1, $C0, $80, $41, $0, $C1, $81, $40, $1, $C0, $80, $41,
$1, $C0, $80, $41, $0, $C1, $81, $40, $1, $C0, $80, $41, $0, $C1, $81, $40, $0, $C1, $81, $40, $1, $C0, $80, $41, $1, $C0, $80, $41, $0, $C1, $81, $40, $0, $C1, $81, $40, $1, $C0, $80, $41,
$0, $C1, $81, $40, $1, $C0, $80, $41, $1, $C0, $80, $41, $0, $C1, $81, $40]);
Top
10 楼Crob(Take Everything Easy!)回复于 2001-12-31 10:50:58 得分 0
要直接赋值还不如直接用内存操作,如下
procedure TForm1.Button1Click(Sender: TObject);
var p: pointer;
charValue: char;
begin
p := AllocMem(10);
move('0123456789', p^, 10);
charValue := char(p^);//charValue取到值'0';
p := pointer(DWORD(p) + 1);
charValue := char(p^);//charValue取到值'1';
FreeMem(p, 10);
end;
要用数组还是做个循环来赋值吧Top
11 楼pdsinfo(新手)回复于 2001-12-31 14:27:08 得分 20
就是定义时赋值了.
其实Delphi中 var myArray:array[0..5]of integer=(1,2,3,4,5,6);
和C中的 int myArray[6]={1,2,3,4,5,6}是一样的...Top
12 楼qiubolecn(来自差生市)回复于 2002-01-10 22:36:01 得分 0
只有全局变量才可以定义时赋值Top




