通過指針訪問二維數組的三種方式
/*
*通過指針訪問二維數組的三種方式
*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;
}