来源:远方网络 | 2005-12-29 14:19:38 | (有9940人读过)
C语言的数组的联系赋值可以这样写: int temp[5][2] = {{0,1,2,3,4}, {5,6,7,8,9}};
delphi里这样的赋值应该怎样写?
回复人: wicked(威) ( ) 信誉:96 2003-04-05 12:21:13Z 得分:0 ? for语句不就行了嘛,最笨也是最稳妥的方法。
Top 回复人: hexenzhou(甲骨文) ( ) 信誉:100 2003-04-05 12:25:52Z 得分:0 ? 比如 int temp[5][2] = {{5,3,5,4,1},{3,8,1,2,4}}; for语句怎么写???
Top 回复人: plainsong(短歌) ( ) 信誉:108 2003-04-05 12:30:41Z 得分:50 ? 上面的C语句并不是赋值,而是变量初始化。如果写成这样就不行了: int temp[5][12]; temp ={{0,1,2,3,4}, {5,6,7,8,9}};
Delphi中只有全局变量可以初始化: var temp: array[0..4, 0..11] of Integer = ((0,1,2,3,4),(5,6,7,8,9),(0,0,0,0,0),……)//注意:在Delphi中对数组初始化时一定要把元素值写全,不能只写一部分。
Top 回复人: hexenzhou(甲骨文) ( ) 信誉:100 2003-04-05 12:57:36Z 得分:0 ? 谢谢plainsong兄的解答。
在下遇到的情况是这样的,在一个过程或函数里对一个全局动态数组分配大小,然后对其赋值,而这个动态数组在不同的过程里有不同的长度,通常大小有32*32, 64*64, 128*128等,很显然C语言上面的初始化方式很方便,而在Delphi里我只能这么写 temp[0,0] := 4; temp[0,1] := 3; temp[0,2] := 1; temp[0,3] := 9; ......... ......... ......... 如果是一个64*64的数组代码量可想而知。如果delphi也支持C语言的初始化方式该多好啊!
Top 回复人: plainsong(短歌) ( ) 信誉:108 2003-04-05 13:37:21Z 得分:0 ? C语言的初始化也只支持静态数组,对于动态数组(动态分配的指针)是不能用这种方式初始化的。 你可以先用 const InitValues: array [0..31, 0..31] of Integer = ((……),(……),……) 定义好初始化值,在初始化动态数组时用循环+Move去初始化。
Top 回复人: hexenzhou(甲骨文) ( ) 信誉:100 2003-04-05 13:45:06Z 得分:0 ? 接受答案,再次表示感谢!
Top
结贴 ,得分记录: plainsong (50)、
|