c++二维数组给一维数组赋值

author author     2023-03-25     398

关键词:

比如我有个数组
char a[3][3] = 1,2,3,4,5,6,7,8,9;
如何把这个数组赋值给数组
char b[3];
b为123,456,789

二维数组给一维数组赋值有两种情况:

1 按元素,逐个赋值到对应目标元素上。

适用于所有情况,可以自定义规则,遍历二维数组,并赋值到一维数组的对应位置上。由二维数组的行列值计算出一维数组的偏移量,这部分算法可以随意设计,有很高的灵活度。

比如,将二维数组第一列复制出来称为一个单独的一维数组,可以写作:

int a[100][100], b[100];
int i;
//二维数组赋值操作可以写在这里,与主题无关,代码从略。
for(i = 0; i < 100; i ++)
    b[i] = a[i][0];//第一列即0列,C语言下标从0开始。

2 整体复制。

二维数组中的元素本身是连续存储的,如果要将二维数组连续的一组数据赋值给一维数组,可以直接调用memcpy函数。该函数声明在cstring中,形式为

void* memcpy(void *dst, void *src, size_t length);

功能为将src地址上,长度为length字节的数据,复制到dst地址上。

比如将第二三两行(这两行是连续的),复制到一维数组中,代码可以写作:

int a[100][100],b[200];
//赋值,从略。
memcpy(b,a[1],sizeof(b));//整体复制。
参考技术A char b[3]; b的元素是char,456和789对于char类型的整数来说是溢出的
b是int类型的数组才行
int b[3];
int i;
for(i=0;i<3;i++)
b[i]=100*a[i][0]+10*a[i][1]+a[i][2];

这样b就是123,456,789了
参考技术B char类型的字符数组,存放整型数字,这个整型数字实际上是某个字符的ASCII码,比如41--A,42---B等。但是如果超过了ASCII中能够显示的字符范围,就会显示乱码。
建议将char b[3];修改为char *b[3]
参考技术C char b[3];
char a[3][3] = 1,2,3,4,5,6,7,8,9;
char temp[3];
for( int i = 0; i < 3; i ++)

for( int j =0; j< 3; j ++)

temp[j] = a[i][j];



b[i] = temp;
本回答被提问者采纳

如何将二维数组的一维分配给一个指针。(代码片段)

我有一个二维数组,我想把这个二维数组的第1维赋值给一个指针,就像下面这样,但是不行。fixed(byte*fixedInput=array2D[0])我怎样才能像我想做的那样,只将第一维赋值给一个指针呢?fixedInput?fixedInput将是一个1维指针数组,其中包... 查看详情

js中,如何把一个一维数组赋值给二维数组?

...过来,谁知道怎样做?原因:思路没有问题,但对一维和二维的使用上有些偏差,特别是pushvarplist="productName":pds[j].value,"rackRate":pds[j] 查看详情

c语言怎么把二维数组的字符串给到一维数组?

...uot;,a); 按元素赋值:遍历一维数组,并将每个元素赋值到二维数组的对应元素上。或者遍历二维数组,将每个元素赋值为一维数组对应值上。优点为操作灵活,可以按照需要任意赋值。2当一维数组和二维数组类型相同,而且赋... 查看详情

怎么给一个二维数组赋不同的值

二维数组初始化也是在类型说明时给各下标变量赋以初值。二维数组可按行分段赋值,也可按行连续赋值。例如对数组a[5][3]:1)按行分段赋值可写为:inta[5][3]=80,75,92,61,65,71,59,63,70,85,87,90,76,77,85;2)按行连续赋值可写为:inta[5][3]=80,75,9... 查看详情

java中如何创建一个二维数组,然后给二维数组赋值!

JAVA中如何创建一个二维数组,然后给二维数组赋值!1,创建二维数组语句:int[][]array=newint[3][3];2,直接创建二维数组并赋值语句:int[][]array=1,2,3,4,5,1,2,3,4,5,1,2,3,4,5;二维数组,也可以理解为用一维数组保存的元素为一维数组。对于... 查看详情

c语言中怎么把一维数组赋给另外一个一维数组

...:1、按元素赋值:遍历一维数组,并将每个元素赋值到二维数组的对应元素上。或者遍历二维数组,将每个元素赋值为一维数组对应值上。优点为操作灵活,可以按照需要任意赋值。2、当一维数组和二维数组类型相同,而且赋... 查看详情

二维数组赋值给一维数组,子函数返回获取临时变量的指针导致问题(代码片段)

1说明在C语言中,如果从子函数获取指针,然后将指针拷贝给其他数据,容易出现拷贝不成功。这是因为子函数的变量,分配在栈上,当子函数退出时,对应的变量也生命周期结束。如果此时在将指针指向... 查看详情

vba赋值给二维数组?

...。(不用循环)1.将1列多行的单元格区域赋值给多列多行二维数组的某一列?2.将1列多行的二维数组赋值给多列多行二维数组的某一列?参考技术A将A列一次性赋值给数组dimarr()arr=Range("a1:a"&Range("a65536").End(xlUp).Row)... 查看详情

android能不能在array文件里定义二维数组而不单单是一维数组

...块肉。当然第一块肉是0号,数组下标从0开始。*//*然后是二维数组,Java中不承认二维数组,二维数组在Java中实际是变量类型是数组的元素构成的数组,比如你手中有一把羊肉串,每一串都有相同数量的肉块,并且所有元素都是... 查看详情

vba基础4数组(代码片段)

一数组的声明与赋值在vba中经常会使用到一维和二维数组,首先来看一下它们的声明方式。Dimmyarray‘(1)直接将单元格区域赋值给数组,此时声明的数组为二维数组。myarray=[a1:b2]‘(2)给数组赋予指定值,下面第一个是一维数组,... 查看详情

c++基础入门丨5.数组——一维数组和二维数组(代码片段)

...数组1.1一维数组定义方式1.2一维数组数组名1.3冒泡排序2二维数组2.1二维数组定义方式2.2二维数组数组名所谓数组,就是一个集合,里面存放了相同类型的数据元素特点1:数组中的每个数据元素都是相同的数据类型特... 查看详情

c++基础入门丨5.数组——一维数组和二维数组(代码片段)

...数组1.1一维数组定义方式1.2一维数组数组名1.3冒泡排序2二维数组2.1二维数组定义方式2.2二维数组数组名所谓数组,就是一个集合,里面存放了相同类型的数据元素特点1:数组中的每个数据元素都是相同的数据类型特... 查看详情

使用循环将值从 C++ 中的一维数组添加到二维数组中

】使用循环将值从C++中的一维数组添加到二维数组中【英文标题】:addvaluesintoa2Darrayfroman1DarrayinC++usingloops【发布时间】:2017-08-0816:57:33【问题描述】:我有一个一维数组和一个包含一些值的二维数组。我想使用循环将一维数组... 查看详情

c++一维数组及二维数组的特征和用法(代码片段)

一维数组及二维数组的特征和用法1.特征2.一维数组2.1初始化2.2数组名用处3.二维数组3.1初始化3.2数组名用处3.3二维数组做函参3.3.1编译器寻址方式1.特征数组内存放数据类型相同数组内存位置连续存储的单个数据大小为4字节2.一... 查看详情

java中的二维数组

所谓二维数组,可以简单的理解为是一种“特殊”的一维数组,它的每个数组空间中保存的是一个一维数组。那么如何使用二维数组呢,步骤如下:1、声明数组并分配空间 2、赋值二维数组的赋值,和一维数组类似,... 查看详情

c++如何用指针指向二维数组

不能用二维指针指向二维数组,指向二维数组的指针最后一维必须是确定的。inta[4][4]=1,2,3,4,2,3,4,5,3,4,5,6,4,5,6,7;int(*s)[4];//表明s指向一个n*4的数组s=a;还有一种方法是将二维数组看成是一维数组(因为数组在内存中连续存储)inta[4][... 查看详情

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

...box与shape的对应关系比如是checkbox[0-5]shape[0-35](当然这里用二维数组也行,看你需要了)这样对于一个比如说index=2,checkbx[2]就是对应的checkbox,而shape[2*6]至shape[2*6+5]就是对应的shape,循环中就很容易处理了,至于你说的arr1什么的,... 查看详情

如何使用 for 循环将一维数组的值放入 C++ 中的二维数组

】如何使用for循环将一维数组的值放入C++中的二维数组【英文标题】:Howtoputthevaluesofa1Darrayintoa2DarrayinC++usingforloop【发布时间】:2017-07-2217:53:25【问题描述】:我想将一维数组的值放入二维数组。然后我想打印出二维数组的值。... 查看详情