在C语言中,二维数组数据的存储形式。不准用百度里的话回答;要用自己的话简明扼要的回答,而且还要有特点

如题所述

二维数组分两种.一是如int arr[10][5];这样定义的.另一种是用malloc形式定义的.第二种比较复杂一些,你或许暂时不用太了解.第一种的话,一般是连续分配的,按行优先顺序或列优先顺序对存储单元进行编号.arr[0][4]后面一个元素就是arr[1][0],就是这个情况.如果是列优先排列的话,arr[9][0]后面一个元素是arr[0][1];一般都实现为前者(行优先).其实就好比把一个数组给折叠起来了.
对于malloc申请的,可能就会是不连续的了.它会要求先申请一个一维数组,里面存的都是指针,然后为每个指针再申请一个一维数组,这样就构成了一个二维数组了.这种不保证连续.当然 你也可以手工构造连续的数组空间.那就比较麻烦些了.
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-05-20
1)C采用行优先存储,坐标范围为0-n;0-m
2)存储空间连续
3)存储空间静态分配,定义变量时指定数组大小,系统分配内存空间,之后不可更改其空间大小!
4)系统存储的是数组地址空间首地址,访问时采用[ ]进行下标运算访问!
5)就这些吧
第2个回答  2012-05-20
跟你举个例子吧!
int str[3][5]{1,2,3,5,6
7,8,9,3,5
5,6,3,2,4};
str[3][5],3代表是行。5代表是列。
希望对你有用!追问

数组名不对吧

第3个回答  2012-05-20
就是坑爹的把一维数组拆成几段
第4个回答  2012-05-20
二维数组就是在一维数组的基础上对每一个元素又是一个一维数组,就是线性存储。
第5个回答  2012-05-21
cyuyan
相似回答