delphi中能不能把一维数组作为一个元素赋值给另外一个数组?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了delphi中能不能把一维数组作为一个元素赋值给另外一个数组?相关的知识,希望对你有一定的参考价值。
我定义了六个一维数组arr1,arr2..arr6,里面存的是rgb值,它们长度不同。同时有六个checkbox,36个shape(每六个一组)。现在我想根据checkbox选中与否决定调用哪个数组来给shape赋颜色值,比如说有两个checkbox被选中,那就用对应的两个数组给前两层shape(1-12)赋颜色值。这个怎么实现?我想定义一个动态数组sarr,哪个checkbox选中就把对应的arr作为整体赋值个给它作为一个元素,这样有办法实现吗?
参考技术A 你可以把checkbox和shape都放在数组中,这样就可以依据索引号来创建checkbox与shape的对应关系比如是checkbox[0-5]
shape[0-35] (当然这里用二维数组也行,看你需要了)
这样对于一个比如说index=2,checkbx[2]就是对应的checkbox,而shape[2*6]至shape[2*6+5]就是对应的shape,循环中就很容易处理了,至于你说的arr1什么的,我不清楚你说的长度不同是什么,一样是可以用二维数组来处理的(当然如果每行的列数可能不同,那也可以用非矩形二维数组)
C语言一维数组赋值方法
一位数组赋值的几种方式int
a[10]=1,2,3,4,5,6,7,8,9,10;
.一般初始化,例:
int
a[10]=3,10,5,3,4,5,6,7,8,9;
int
array[5]=2,3,4,5,6;
其结果是给每一个数组元素都指定了初值。
2.部分元素初始化,其余元素均为零。
例:
int
a[10]=7,8,9,67,54;
仅给前5个元素赋初值,后5个元素初值为0。
3.全部元素均初始化为1。
int
a[10]
=
1,1,1,1,1,1,1,1,1,1;
不允许简写为 int
a[10]=1;或int
b[10]=1*10;
同学们想一想上述定义a和b数组后,初始化结果是什么?
注意:当程序不给数组指定初始值时,编译器作如下处理:
(1)部分元素初始化,编译器自动为没有初始化的元素初始化为0。
(2)数值数组如果只定义不初始化,编译器不为数组自动指定初始值,即初值为一些随机值(值不确定)。
4.如果全部元素均指定初值,定义中可省略元素的个数。
例:
int
a[5]=9,28,3,4,5;可以写为:
int
a[
]=9,28,3,4,5;
数组元素的引用
c语言规定,不能整体引用数值数组,只能逐个引用数组元素;
元素引用方式:数组名[下标表达式]
例:a[0]
=
a[5]
+
a[7]
-
a[2*3]
“下标表达式”可以是任何非负整型数据。
特别强调:1.一个数组元素,实质上就是一个变量,它具有和相同类型单个变量一样的属性,可以对它进行赋值和参与各种运算。
2.在c语言中,数组作为一个整体,不能参加数据运算,只能对单个的元素进行处理。 参考技术A 1、初始化时进行赋值。
int a[2] = 1,2;
char str[20] = "hello world"; 2、逐个赋值
int a[4];
a[0] = 1,a[1]=2, a[2] = 3, a[4]=4; 等同于。
for (int inx=0; inx!=4; ++inx) a[inx]=inx+1; 3、通过函数复制数据以实现赋值
比如下面的代码,通过memcpy函数来实现数据的复制,以实现数组赋值的功能。
#include
#include
#include
int main()
int inx;
int a[10] = 1,2,3,4,5,6,7,8,9,10;
int b[5];
//复制4个元素,b[4]将是随机值
memcpy(b, a, 4 * sizeof(int));
for (inx=0; inx!=5; ++inx) printf("%d\t", b[inx]);
printf("\n");
memcpy(b, a+4, 5 * sizeof(int));
for (inx=0; inx!=5; ++inx) printf("%d\t", b[inx]);
printf("\n");
return 0;
参考技术B int
i,a[10];
for(i=0;i<10;i++)
cin>>a[i];
这样可以用键盘赋值。输入时可以以空格或回车作为分隔符
以上是关于delphi中能不能把一维数组作为一个元素赋值给另外一个数组?的主要内容,如果未能解决你的问题,请参考以下文章