ポインタアクセス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