当前位置:首页 » 编程语言 » 初始化二维数组内存c语言
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

初始化二维数组内存c语言

发布时间: 2022-10-07 20:12:34

‘壹’ c语言二维数组怎么初始化

初始化是在数组定义时进行的,根据你的说法,定以后就只能对每个元素单独赋值来实现

‘贰’ c语言 怎么把一个二维数组初始化为空

初始化二维数组可以试试

charq[3][3]={{0}};

或者

#include<string.h>
memset(q,0,sizeof(q));

输出没有很好的方法,你可以封装一个函数。以后都用这个函数输出。

functionprintArray2(arr,row,col)
{
for(inti=0;i<=row;i++){
for(intj=0;j<=col;j++){
printf("%c",arr[i][j]);
}
printf(" ");
}
}

‘叁’ c语言 程序设计 关于二维数组 初始化

大哥,你越界了!~
第一次
123456 后面那个 0 2 就是 传说中的j 和 i
第二次
123456 后面的0 就是传说中的j
这次i在数组所在虚拟内存的前面

注意,不要越界不要越界啊
修改的时候千万不要越界,万一不小心改了i 或者j 的值,你就哭吧!~

注意事项嘛。。就是不要越界,还有,能不用二维数组就别用二维数组!~

‘肆’ C语言 二维数组初始化

我试了一下 编译也是错误的 加0是对的 ;我想应该是 二维数组的初始化的时候 你既然定义了两行两列的矩阵 如果a[2][2]={{2},{0}}系统是默认后面以0来代替数据 如:2 0
0 0 但是如果是a[2][2]={{2},{}}系统不会默认用0代替其他数据 会报错

‘伍’ c++二维数组初始化

C++二维数组初始化的形式 原创
2019-08-26 09:36:23
1点赞

ys1305

码龄4年

关注
数据类型 数组名[整常量表达式][ 整常量表达式]={ 初始化数据 };
在{ }中给出各数组元素的初值,各初值之间用逗号分开。把{ }中的初值依次赋给各数组元素。
有如下几种初始化方式:
⑴ 分行进行初始化

int a[2][3]={{1,2,3},{4,5,6}};
1
1
在{ }内部再用{ }把各行分开,第一对{ }中的初值1,2,3是0行的3个元素的初值。第二对{ }中的初值4,5,6是1行的3个元素的初值。相当于执行如下语句:

int a[2][3];
a[0][0]=1;a[0][1]=2;a[0][2]=3;a[1][0]=4;a[1][1]=5;a[1][2]=6;
1
2
1
2
注意,初始化的数据个数不能超过数组元素的个数,否则出错。

⑵ 不分行的初始化

int a[2][3]={ 1,2,3,4,5,6};
1
1
把{ }中的数据依次赋给a数组各元素(按行赋值)。即a[0][0]=1; a[0][1]=2;a[0][2]=3;a[1][0]=4;a[1][1]=5;a[1][2]=6;

⑶ 为部分数组元素初始化

static int a[2][3]={{1,2},{4}};
1
1
第一行只有2个初值,按顺序分别赋给a[0][0]和a[0][1];第二行的初值4赋给a[1][0]。由于存储类型是static,故其它数组元素的初值为0。注:某些C语言系统(如:Turbo C)中,存储类型不是static的变量或数组的初值也是0。
static int a[2][3]={ 1,2};
只有2个初值,即a[0][0]=1,a[0][1]=2,其余数组元素的初值均为0。

⑷ 可以省略第一维的定义,但不能省略第二维的定义。系统根据初始化的数据个数和第2维的长度可以确定第一维的长度。

int a[ ][3]={ 1,2,3,4,5,6};
1
1
a数组的第一维的定义被省略,初始化数据共6个,第二维的长度为3,即每行3个数,所以a数组的第一维是2。
一般,省略第一维的定义时,第一维的大小按如下规则确定:
初值个数能被第二维整除,所得的商就是第一维的大小;若不能整除,则第一维的大小为商再加1。例如,int a[ ][3]={ 1,2,3,4};等价于:int a[2][3]={ 1,2,3,4};
若分行初始化,也可以省略第一维的定义。下列的数组定义中有两对{ },已经表示a数组有两行。
static int a[ ][3]={{1,2},{4}};

展开全文
二维数组所有元素初始化为0

‘陆’ c语言有关二维数组变量初始化

二维数组可以看成特殊的一维数组,每个元素又由一个一维数组组成。

例如:构建一个maxrownum*maxrownum的矩阵

longdouble**data1_bfE;

data1_bfE=(longdouble**)malloc(maxrownum*sizeof(longdouble*));

for(i=0;i<maxrownum;i++)

{

data1_bfE[i]=(longdouble*)malloc(maxrownum*sizeof(*data1_bfE));

}

data1_bfE[i]=(longdouble*)malloc(maxrownum*sizeof(*data1_bfE));

动态分配maxrownum个longdouble的内存空间,跟long double a[5]相似,但前者是堆上分配的,后者是栈上分配的;

data1_bfE=(longdouble**)malloc(maxrownum*sizeof(longdouble*));

意思就是定义一个有maxrownum个longdouble类型的指针的动态数组,然后在里面存放指针,相当于容器,data1_bfE就会成为指针的指针。

注意事项:C语言在定义数组和表示数组元素时常常采用a[ ][ ]的形式,使用方便,不易出错。

‘柒’ c语言二维数组的初始化

//不想讲究技巧的话,就如下面老老实实的初始化
int twoArray[3][5];
int i,j;
for (i = 0;i<3;i++){
for (j = 0;j<5;j++){
twoArray[i][j] = 0;
}
}

//有时候初始化时有数据,就按下面的方法
int twoArray[][]={{2,3,4},{5,4,5}};
//以上初始化,表示数组的大小为[2][3]

‘捌’ c语言二维数组的的初始化问题。

你哪些一维数组都是一样长吗
如果是一样长,并且长度是一个已知常量N,假设有5个一维数组,类型为int
int array1[N]
int array2[N]
int array3[N]
int array4[N]
int array5[N]
假设一维数组是上面的5个。二维数组 int array[5][N]
for(int i=0;i<N;i++)
array[0][i]=array1[i];

for(int i=0;i<N;i++)
array[1][i]=array2[i];
for(int i=0;i<N;i++)
array[2][i]=array3[i];
for(int i=0;i<N;i++)
array[3][i]=array4[i];
for(int i=0;i<N;i++)
array[4][i]=array5[i];

‘玖’ c语言二维数组初始化

声明时给初始值叫初始化。例如:int b[3][4]={1,2,3,4,5,6,7,8,4,4,4,4};
声明后赋值,可以用赋值语句,
b[0][0]=1; b[0][1]=2; b[0][2]=3; b[0][3]=4;
b[1][0]=5; b[1][1]=6; b[1][2]=7; b[1][3]=8;
b[2][0]=4; b[2][1]=4; b[2][2]=4; b[2][3]=4;
数据量大时,则用数据文件,用输入语句读入数值。

函数传递也可以:
void a1(int *a){
int b[3][4]={1,2,3,4,5,6,7,8,4,4,4,4}; // 数据在 b[3][4]中
int i,j;
for (j=0;j<3;j++)
for (i=0;i<4;i++)
a[j*4+i]=b[j][i];

}
main()
{
int a[3][4];
int i,j;
a1(&a[0][0]); // 把2维数组a[][] 看成1维,数组元素顺序排列
for (j=0;j<3;j++){
for (i=0;i<4;i++) printf("%3d ",a[j][i]); // 输出获得的数值
printf("\n");
}
return 0;
}

‘拾’ C语言二维数组的初始化表示方法有哪些

#include <stdio.h>
#include <string.h>

void main()
{
int a[10]={0}; //所有初始化为0
int b[5]={1,2,3,4,5}; //d[0]=1,d[1]=2,d[2]=3...
int c[10][20]={0}; //所有初始化为0
int d[3][2]={{1,2},{3,4},{5,6}}; //c[0][0]=1,c[0][1]=2,c[1][0]=3,c[1][1]=4...

int e[9][10];
memset(e,0,sizeof(e)); //所有初始化为0
}