声明数组和测试
#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];
int n = 30;
int line_flag = 5;
while (n--)
{
printf("%-5d ",*p++);
if (line_flag == 0)
{
putchar('\n');
line_flag = 5;
}
line_flag--;
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
总结
0x00、定义一个二维数组
int matrix[3][10];
0x01、如果要声明一个整形指针访问二维数组中的每一个元素,不能使用如下方式访问
int matrix[3][10];
int *p = matrix; //error martix 类型是数组指针
0x02、要使用如下形式访问
int *p = matrix[0];
int *p = matrix[0][0];
0x03、正确访问二维数组类型为
int (*p)[10] = martix;