黑马程序员技术交流社区

标题: "二维数组在内存中的存储 [打印本页]

作者: hugin    时间: 2016-9-20 16:27
标题: "二维数组在内存中的存储


二维数组是从高地址向低地址申请了连续的 (行 * 列 * 每1个元素占用的字节) 个字节空间.



"二维数组的地址.
二维数组的地址==二维数组名==二维数组的第0行的地址==二维数组的第0行的第0个元素的地址 == 二维数组的低字节的地址.int arr[3][4];&arr ---> arr == arr[0] == &arr[0][0]

"二维数组行列计算-

1). 求二维数组的长度. 真正的元素的个数.
sizeof(arr)/sizeof(arr[0][0]);
用二维数组占用的总的字节数 除以 每1个元素占用的字节数.
2). 求行数
二维数组的每1行占用的字节数是一样的.
所以.
用总的字节数 除以 每1行占用的字节数.就可以得到行数.
int rows = sizeof(arr)/sizeof(arr[0]);

3). 求列数.
每1行的总字节数 除以 每1个元素的字节数.
int cols = sizeof(arr[0]) / sizeof(int);


"二维数组与函数
写参数的时候,先写行数和列数,最后再写二维数组,然后二维数组的列数用参数指定.




作者: 跳DJ的农民哥    时间: 2016-9-20 18:39
感谢分享`!赞一个!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2