//*
用指针访问一维数组、二维数组和多维数组
*/
#包含
const int COLS=3;
const int COUNT=4;
//用主指针计算偏移并遍历一维数组
voidprintsingledimensionalarray (int * data,int data_len );
//使用主指针来计算偏移并遍历二维阵列:
voidprintdoubledimensionalarray (int * array,int rows,int cols );
//用主指针计算偏移并遍历三维阵列:
voidprintthreedimensionalarray (int * array _ 3,int rows,int cols,int count );
//使用指向二维数组的指针遍历三维数组
voidprintthreedimensionalarray2(int (* p ) [COLS][COUNT],int rows );
void main () )
{
int data [ ]={ 1,2,3,4,5,6,7,8,9 };
intdata_Len=sizeof(data )/sizeof ) data[0];
printf(data[6]=%d(n ),* ) *(data 6); //7
printf (一维数组data:(n );
printsingledimensionalarray (data,data_len );
intarray [2] [3]={ 1,2,3 },{ 4,5,6 };
printf(2 (二维阵列阵列(n );
printdoubledimensionalarray (阵列,2,3 );
int count=0;
int array_3[2][3][4];
int i,j,k;
for(I=0; i2; I )
{
for(j=0; j3; j )
{
for(k=0; k4; k )
{
array_3[i][j][k]=count;
}
}
}
printf(3 (三维阵列array_3:(n );
printthreedimensionalarray (array _ 3、2、3、4 );
//三维数组初始化
int array_33[2][3][4]=
{
{
{1、2、3、4}、
{5、6、7、8}、
{ 9,10,11,12 },
(,
{
{13、14、15、16}、
{ 17、18、19、20 },
{21、22、23、24}、
}
(;
printf(3 (三维阵列array_3:(n );
printthreedimensionalarray (array _ 33、2、3、4 );
printf(3 (三维阵列array_3:(n );
printthreedimensionalarray2(array _ 33,2 );
}
//用主指针计算偏移并遍历一维数组
voidprintsingledimensionalarray (int * data,int data_len ) ) ) ) ) ) ) ) )。
{
int i;
for(I=0; I
printf(m )、* ) *(data i ); //7
打印((n );
}
//使用主指针来计算偏移并遍历二维阵列:
voidprintdoubledimensionalarray (int * array,int rows,int cols ) ) ) ) ) ) ) ) ) ) 652 )
{
int i,j;
for(I=0; I
{
for(j=0; Jj
//1位指针,用于计算偏移并遍历二维阵列:
printf(m )、* ) *(array i*cols j );
}
打印((n );
}
}
//用主指针计算偏移并遍历三维阵列:
voidprintthreedimensionalarray (int * array _ 3,int rows,int cols,int count ) ) ) ) ) ) ) ) )
{
int i,j,k;
for(I=0; I
{
打印() (n );
for(j=0; Jj
{
for(k=0; K
{
//array[i][j][k]=count;
//printf(m )、array_3[i][j][k];
printf(m )、* ) *(array_3 i*3*4 j*4 k );
}
打印((n );
}
printf () (n );
}
}
//使用指向二维数组的指针遍历三维数组
voidprintthreedimensionalarray2(int (* p ) [COLS][COUNT],int rows ) )。
{
int i,j,k;
for(I=0; I
{
打印() (n );
for(j=0; Jj
{
for(k=0; K
{
//array[i][j][k]=count;
printf(m )、p[i][j][k];
//printf(m )、* ) *(array_3 i*3*4 j*4 k );
}
打印((n );
}
printf () (n );
}
}
结果:
data[6]=7
一维数组data:
1 2 3 4 5 6 7 8 9
二维数组数组array :
1 2 3
4 5 6
三维数组array_3:
{
0 1 2 3
4 5 6 7
8 9 10 11
}
{
12 13 14 15
16 17 18 19
20 21 22 23
}
三维数组array_33:
{
1 2 3 4
5 6 7 8
9 10 11 12
}
{
13 14 15 16
17 18 19 20
21 22 23 24
}
三维数组array_33:
{
1 2 3 4
5 6 7 8
9 10 11 12
}
{
13 14 15 16
17 18 19 20
21 22 23 24
}
processreturned2(0x2)执行时间: 0.312 s
Press any key to continue。