#include<stdio.h>
#include<stdlib.h>
//数组在内存中是线性排列的,改变指针类型就能改变数组的访问方式
void main1()//动态建立二维指针
{
int *p = (int*)malloc(sizeof(int) * 40);//一维数组
for (int *px = p,i=0; px < p + 40; px++,i++)
{
*px = i;
printf("%d,%p\n", *px, px);//指针循环
}
printf("\n\n");
int(*pp)[8] = (int(*)[8])p;//指针类型决定访问方式
for (int i = 0; i < 5; i++)
{
for (int j = 0; j < 8; j++)
{
//printf("%5d", pp[i][j]);//下标的方式
printf("%5d", *(*(pp + i)) + j);//指针的方式
}
printf("\n");
}
printf("\n\n");
//创建一个三维数组来指向他
//a[4][2][5]
int(*ppp)[2][5] = (int(*)[2][5])p;
for (int i = 0; i < 4; i++)
{
for (int j = 0; j < 2; j++)
{
for (int n = 0; n < 5; n++)
{
//printf("%5d", ppp[i][j][n]);
printf("%5d", *(*(*(ppp + i)) + j) + n);//指针的方式
}
printf("\n");
}
printf("\n\n\n");
}
getchar();
}
20171129二维数组指针访问
最新推荐文章于 2024-06-22 21:17:28 发布