C语言中二维数组声明时,探究省略第一维的原因

我们在使用二维数组作为参数时,我们可以指明这个数组所有的维数,同时我们也可以省略一维,但是二维或者高维却不能省略。why呢?由于编译器原理的限制,在一个数组Elemtype test[m][n]中,访问test[i][j]时(也就是寻找绝对地址了),`loc(i,j)=loc(0,0)+i * n *  sizeof(Elemtype)+j * sizeof(Elemtype)` **注**:Elemtype是存储的元素类型,这样我们就看到二维长度起到了作用。
在定义二维数组的时候对其进行初始化,也可以省略第一维,编译器会根据你的初始化语句自动决定第一维度。
这里给出以二维数组为参数,矩阵的乘法的例子。
/**
A:待乘矩阵
B:待乘矩阵
C:结果矩阵
m:左矩阵行
n:左矩阵列也是右矩阵行
k:右矩阵列
**/
void mul(int C[][Maxsize],int A[][Maxsize],int B[][Maxsize],int m.int n,int k){
	for(int i=0;i<m;i++){
		for(int j=0;j<k;j++){
			C[i][j] = 0;
			for(int h=0;h<n;h++){
			C[i][j]+=A[i][h]*B[h,i];
			}
		}
	}
}
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值