1. 二维数组的存储方式及访问方式
二维数组中元素按行存储,所以利用数组下标对元素进行访问时,需要知道数组的列数。
例如:
定义二维数组 int graph[7][7],当需要访问数组元素graph[3][4]时,就需要寻址,*(graph + cols * 3 + 4) = *( graph + 7 * 3 + 4),对二维数组访问必须知道数组列数。
2. 二维数组作为函数参数传递
以二维数组graph[7][7]作为参数的函数有三种方式声明方法,必须指定数组列数,这是因为在函数实现中可能会出现对元素graph[3][4]的访问,所以必须指定数组的列数,这样才可以寻址访问。
第三种方法声明一个指针,该指针指向具有7个整数元素的一维数组。
f( int graph[7][7]) { ... }
f( int graph[ ][7]) { ... }
f( int (*graph)[7]) { ... }