在C里,“二维数组”和“数组的数组”有什么区别?

来源:百度知道 编辑:UC知道 时间:2024/06/21 20:15:01
如下面的代码,matrix1和matrix2有什么实质性的区别?
#include<stdio.h>
int main()
{
int matrix1[3][3];
typedef int vector[3];
vector matrix2[3];
return 0;
}

这个程序中的从实践应用上来说是没有什么区别的。

但是整个问题的概念上是有很大区别。二维数组就是m*n了,整个长度是可以确定的。但是数组的数组就不一样了,例如a[i],他表示的是a[]的第i+1个元素,但是他同时表示的是一个数组,表示的这个数组是不确定的,可以是长度为1的,也可以上长度为N 的,a中每个元素所表示的数组都是可以是不同长度和类型的。

matrix1就是一个二维数组,而matrix2是一个vector类型的一维数组,只是这个数组的每个元素又都是一个数组而已,这就成了数组的数组 — 一家直言,不代表事实一定是这样!

没有区别,但在做函数参数时,是不能相互替换的,这点自己验证吧!

xxx