#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 删除。