重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
二维数组可以看成特殊的一维数组,每个元素又由一个一维数组组成。
成都创新互联公司网站建设公司,提供成都网站制作、成都做网站,网页设计,建网站,PHP网站建设等专业做网站服务;可快速的进行网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,是专业的做网站团队,希望更多企业前来合作!
例如:构建一个maxrownum*maxrownum的矩阵
long double **data1_bfE;
data1_bfE=(long double **)malloc(maxrownum*sizeof(long double *));
for(i=0;imaxrownum;i++)
{
data1_bfE[i]=(long double *)malloc(maxrownum*sizeof(*data1_bfE));
}
data1_bfE[i]=(long double *)malloc(maxrownum*sizeof(*data1_bfE));
动态分配maxrownum个long double的内存空间,跟long double a[5]相似,但前者是堆上分配的,后者是栈上分配的;
data1_bfE=(long double **)malloc(maxrownum*sizeof(long double *));
意思就是定义一个有maxrownum个long double类型的指针的动态数组,然后在里面存放指针,相当于容器,data1_bfE就会成为指针的指针。
注意事项:C语言在定义数组和表示数组元素时常常采用a[ ][ ]的形式,使用方便,不易出错。
声明时给初始值叫初始化。例如: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;j3;j++)
for (i=0;i4;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;j3;j++){
for (i=0;i4;i++) printf("%3d ",a[j][i]); // 输出获得的数值
printf("\n");
}
return 0;
}
c语言二维数组初始化的三种方式
int a[3][3]={1,2,3,4,5,6,7,8,9};
int a[3][3]={{1,2,3},{4,5},{7}};
int a[3][3]={0};