1. 换个角度看二维数组:
[问题1]如果这样定义数组: "short X[3][4] = {0};" , 数组中的元素值均为0吗?
[答]是的.
#include<stdio.h>
void Show(short [][4], short, short);
int main()
{
short X[3][4] = {0};
Show(X, 3, 4);
/* */
return 0;
}
/* */
void Show(short M[][4], short m, short n)
{
/* M 是 m * n 的二维数组 */
short i, j;
for(i = 0; i < m; i ++)
{
for(j = 0; j < n; j ++)
{
printf("%3hd ", *(*(M + i) + j));
}
putchar('\n');
}
}
[问题2]除了使用数组下标访问二维数组的元素外, 还可以怎样设计?
[答]用 *(*(M + i) + j) 代替 M[i][j], 其中 M + i 为二维数组M第i行的地址(可以这样理解), *(M