声明数组和测试
#include <stdio.h>
void matrix_test();
int main(void)
{
matrix_test();
return 0;
}
void matrix_test(void)
{
int matrix[3][10] ={
{
1,2,3,4,5,6,7,8,9,10
},
{
11,12,13,14,15,16,17,18,19
},
{
21,22,23,24,25,26,27,28,29,30
}
};
//int *p = &matrix[0][0];
int *p = matrix[0];
int n = 30;
int line_flag = 5;
while (n--)
{
printf("%-5d ",*p++);
if (line_flag == 0)
{
putchar('\n');
line_flag = 5;
}
line_flag--;
}
}
总结
0x00、定义一个二维数组
int matrix[3][10];
0x01、如果要声明一个整形指针访问二维数组中的每一个元素,不能使用如下方式访问
int matrix[3][10];
int *p = matrix; //error martix 类型是数组指针
0x02、要使用如下形式访问
int *p = matrix[0];// right
int *p = matrix[0][0];// right
0x03、正确访问二维数组类型为
int (*p)[10] = martix; // right