前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >指针与数组

指针与数组

原创
作者头像
鲁郭大侠
修改2020-03-09 11:18:07
3620
修改2020-03-09 11:18:07
举报
文章被收录于专栏:高级程序设计高级程序设计

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com