有关C语言中的二维数组和指针,可参考以下示例代码:
#include <stdio.h>
int main(void)
{
char matrix[3][3] = {
{ '1','2','3' },
{ '4','5','6' },
{ '7','8','9' }
};
printf("矩阵的地址 : %p\n", matrix);
printf("matrix[0][0]的地址 : %p\n", &matrix[0][0]);
printf("matrix[0]的值 : %p\n", matrix[0]);
system("pause");
return 0;
}
执行上面示例代码,得到以下结果:
矩阵的地址 : 00CFF860
matrix[0][0]的地址 : 00CFF860
matrix[0]的值 : 00CFF860
考虑一下以下表达式:
matrix
matrix[0]
&matrix[0][0]
下面这些都具有相同的值:
matrix
是char
元素的二维数组的地址,matrix [0]
是char
元素的一维数组的地址,是一个矩阵的子数组,&matrix [0] [0]
是char
类型的数组元素的地址。