C语言指向二维数组指针问题
1个回答
展开全部
#include<stdio.h>
#define LENGTH 5
void main()
{
int i=0, j=0;
int iArray[LENGTH][LENGTH];
int (*pArray)[LENGTH];
for (i=0; i<LENGTH; i++)
{
for (j=0; j<LENGTH; j++)
{
iArray[i][j] = i*LENGTH+j;
printf("%d\t", i*LENGTH+j);
}
printf("\n");
}
printf("\nUse pArray\n\n");
pArray = iArray;
for (i=0; i<LENGTH; i++)
{
for (j=0; j<LENGTH; j++)
{
//printf("%d\t", pArray[i][j]); //使用方法一
//printf("%d\t", *(*(pArray+i)+j)); //使用方法二
}
printf("\n");
}
printf("\nUse ++\n\n");
pArray = iArray;
for (i=0; i<LENGTH; i++)
{
int *p = *pArray++;
for (j=0; j<LENGTH; j++)
{
printf("%d\t", *p++); //使用方法三,使用++
}
printf("\n");
}
}
首先,如果是二维数组,你定义的应该是一个数组指针,而不是指针数组,二者的区别如下:
int *a[10]; 含有10个整型指针的数组。
int (*a)[10]; 指向数组大小为10的数组指针。
更多追问追答
追问
可是我实际需要很多个指针来记录多个一维数组的位置啊,一个指针不够用
可是我实际需要很多个指针来记录多个一维数组的位置啊,一个指针不够用
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询