通過指針訪問二維數組的三種方式

通過指針訪問二維數組的三種方式

/*
*通過指針訪問二維數組的三種方式
*2019-11-29
*/
#include <stdio.h>

int main(int argc, char *argv[])
{
    int a[4][4];
    int i, j;
    int *pInt;         //普通指針
    int (*pIntPtr)[4]; //數組指針
    int *pIntlist[4];  //指針數組

    pInt = a[0];
    for(int i = 0; i < 4; i++)
    {
        pIntlist[i] = a[i];
    }

    //指針初始化                       
    pInt = a[0];
    pIntPtr = a;
    for(int i = 0; i < 4; i++)
    {
       pIntlist[i] = a[i];
    }

    //通過普通指針初始化二維數組
    for(i = 1; i <= 16; i++)
    {
        *pInt = i;
        pInt++;
    }

    printf("by pIntPtr:\n");
    for(int i = 0; i < 4; i++)
    {
        for(j = 0; j < 4; j++)
        {
            printf("%3d ", *(*pIntPtr + j));
        }
        printf("\n");
        pIntPtr++;
    }

    printf("by pIntPtrList:\n");
    for(i = 0; i < 4; i++)
    {
        for(j = 0; j < 4; j++)
        {
            printf("%3d ", *(pIntlist[i] + j));
        }
        printf("\n");
    }

    return 0;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章