ポインタアクセス2 D配列ポインタ
3476 ワード
配列とテストの宣言
#include
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('
');
line_flag = 5;
}
line_flag--;
}
}
まとめ
0 x 00、2 D配列を定義する
int matrix[3][10];
0 x 01、整形ポインタを宣言して2 D配列の各要素にアクセスする場合は、次の方法でアクセスできません.
int matrix[3][10];
int *p = matrix; //error martix
0 x 02、以下の形式でアクセスする
int *p = matrix[0];// right
int *p = matrix[0][0];// right
0 x 03、2 D配列タイプに正しくアクセスする
int (*p)[10] = martix; // right