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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么给一个二维数组赋不同的值相关的知识,希望对你有一定的参考价值。

二维数组初始化也是在类型说明时给各下标变量赋以初值。二维数组可按行分段赋值,也可按行连续赋值。
例如对数组a[5][3]:
1) 按行分段赋值可写为:
int a[5][3]= 80,75,92,61,65,71,59,63,70,85,87,90,76,77,85 ;
2) 按行连续赋值可写为:
int a[5][3]= 80,75,92,61,65,71,59,63,70,85,87,90,76,77,85;
这两种赋初值的结果是完全相同的。
对于二维数组初始化赋值还有以下说明:
1) 可以只对部分元素赋初值,未赋初值的元素自动取0值。
例如:
int a[3][3]=1,2,3;
是对每一行的第一列元素赋值,未赋值的元素取0值。 赋值后各元素的值为:
1 0 0
2 0 0
3 0 0
int a [3][3]=0,1,0,0,2,3;
赋值后的元素值为:
0 1 0
0 0 2
3 0 0
2) 如对全部元素赋初值,则第一维的长度可以不给出。
例如:
int a[3][3]=1,2,3,4,5,6,7,8,9;
可以写为:
int a[][3]=1,2,3,4,5,6,7,8,9;
3) 数组是一种构造类型的数据。二维数组可以看作是由一维数组的嵌套而构成的。设一维数组的每个元素都又是一个数组,就组成了二维数组。当然,前提是各元素类型必须相同。根据这样的分析,一个二维数组也可以分解为多个一维数组。C语言允许这种分解。
如二维数组a[3][4],可分解为三个一维数组,其数组名分别为:
a[0]
a[1]
a[2]
对这三个一维数组不需另作说明即可使用。这三个一维数组都有4个元素,例如:一维数组a[0]的元素为a[0][0],a[0][1],a[0][2],a[0][3]。
必须强调的是,a[0],a[1],a[2]不能当作下标变量使用,它们是数组名,不是一个单纯的下标变量。
参考技术A 定义的时候就赋值,或者是键盘输入。 参考技术B 表示没明白你的意思。
赋不同的值用两个for循环就可以了啊。
如果初始化就直接memset()函数。
参考技术C int a[3][4];
int i=0,j=0,tmp;
for(i=0;i<3;i++)

for(j=0;j<4;j++)

a[i][i]=赋值;

参考技术D a[1][1] = 1
a[2][1]=2
.......................

VC中如何将一个二维数组的值赋给另一个二维数组?只能用一行。

其中一个是函数型式的
arrayB = change(m, arrayA);
这样好像不可以。。

//---------------------------------------------------------------------------

#include <stdio.h>
#include <string.h>
int main(void)

int a[2][2]=1,2,3,4,b[3][3]=0,i;

memcpy(b,a,sizeof(a));//把a数组的所有元素复制到b数组中

for (i = 0; i<9; i++)
printf("%d ",b[i/3][i%3]);
if ((i+1)%3==0) putchar('\n');

return 0;

//---------------------------------------------------------------------------
参考技术A 什么意思,什么叫"其中一个是函数型式的"

只用一行的话,可以用memcpy函数实现,前提是两个数组各个维数下的元素个数是相同的本回答被提问者和网友采纳
参考技术B 如果声明和定义变量那一行不算的话可以这样:
int a[2][3]=1,2,3,4,5,6,b[2][3];
memcpy((char *)b,(char *)a,2*3*sizeof(int));
参考技术C 把a赋给b
char a[5]=0;
char b[5];
memcpy(b,a,5);//b是目的地址,a是源地址,5是要拷贝的字节数

以上是关于怎么给一个二维数组赋不同的值的主要内容,如果未能解决你的问题,请参考以下文章

VC中如何将一个二维数组的值赋给另一个二维数组?只能用一行。

怎么样给一个一维数组全赋成false

怎么样给一个一维数组全赋成false

二维数组怎么赋值

使用两个for循环给二维数组赋固定值,并输出?

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