#include <stdio.h>
#include <conio.h>
#define M 4 #define N 8
main() { ? int iVal[M][N]; //定义一个l二维数组 ? int *iPtr; //定义一个指针指向二位s数组
int i,j,
? clrscr(); ? printf("\nThe Example:\n\n");
//对二维数组进行赋值
? for (i=0;i< M; i++) ??? for (j=0;j< N; j++) ????? iVal[i][j]=(i+1)*5+j*100;
//按照二维数组的处理方式(索引)进行检索输出
? printf("Source:\n"); ? for (i=0;i< M;i++) ?? { ??? for (j=0;j< N;j++) ????? printf("%8d",iVal[i][j]); ??? printf("\n"); ?? }
? printf("Single demension pointer:\n");
// 指针赋值 ? iPtr=iVal[0]; ? j=0;
// 按指针访问形式数组二维数组中的数值 ? for (i=0;i< M*N;i++) ?? { ????? printf("%8d",*(iPtr+i)); ????? j++; ????? if (j==N) ?????? { ? printf("\n"); ? j=0; ?????? } ?? }
//对二维数组按指针方式输出 ? printf("Source Pointer:\n"); ? for (i=0;i< M;i++) ?? { ??? for (j=0;j< N;j++) ????? printf("%8d",*(iVal[0]+i*N+j)); ??? printf("\n"); ?? }
// 通过指针按访问二维数组的方式访问数值并输出
? printf("Pointer:\n");
? for (i=0;i< M;i++) ?? { ??? for (j=0;j< N;j++) ????? printf("%8d",*(iPtr+i*N+j)); ??? printf("\n"); ?? }
? getch(); }
通过上述代码可以看出 二维数组名称本身就是一个指针。
亦即定义一个二维数组,即可以用数组名称通过数组访问方式访问数组中的数值,也可以应用数组名称采用指针访问方式访问数组中的数值。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。