- 0
- 0
- 约7.25千字
- 约 26页
- 2017-02-06 发布于重庆
- 举报
第21讲二维数组与指针
《解析C程序设计》第2章 简单程序设计 第21讲 二维数组与指针 指针与二维数组 #define M 2 #define N 3 … int b[M][N]; 两种观点: 看成一个一维数组 看成数组的数组 将二维数组看成一个一维数组 int b[M][N]; 二维数组b相当于一个有6个元素的一维数组 若有int *p=b[0][0]; 或p=b[0] ;(总之是列地址) b[i][j]相对于数组起始地址的偏移量为i*N+j 则p[i*N+j]或*(p+i*N+j)表示每一个数组元素。 填空题:求二维数组元素的和 #include stdio.h void main() { int a[3][4]={1,3,5,7,9,11,13,17,19,21,23}; int i,j,sum=0,*p= ; for ( i=0 ;i3;i++) for(j=0; j4; j++) { sum+=p[ ]; } printf(“sum=%4d,sum); } 填空:输出二维数组元素的值 #include stdio.h void main() { int a[3][4]={1,3,5,7,9,11,13,17,19,21,23}; int *p= ; for ( ; ;p++) { if (( )%4==0) printf(\n); printf(%4d, ); } } 对比学习 如何进入S319 S(信科)?沿垂直方向上楼走至3楼?拐进三楼?沿水平方向走至第19号房间门口?拐进教室 如何找到a[i][j] a(二维数组首地址)?沿行方向至第i行?进入第i行?沿水平方向至第j列?取出数据 将二维数组看成数组的数组 指针与二维数组 指针与二维数组 b 代表二维数组的首地址,指向第0行的首地址(行地址) b+i 指向第i行的首地址(行地址) *(b+i) 或 b[i] 代表第i行第0列的地址(列地址) *(b+i)+j 或 b[i]+j 代表第i行第j列的地址(列地址) *(*(b+i)+j ) 或 b[i][j] 代表第i行第j列的元素(数组元素) 用数组名引用二维数组元素 元素b[i][j]的几种等价的引用方式 b[i] [j] *(b[i]+j) *(*(b+i)+j) (*(b+i)) [j] 二维数组与指针 用指针指向二维数组,有两种指针: 列指针,这种指针指向二维数组的每一个元素,它每加1,指向二维数组的下一个数组元素。 行指针,这种指针指向二维数组的行,它每加1,指向二维数组的下一行。 上边两种指针分别对应着对二维数组的两种看法。 二维数组的行指针 行指针指向二维数组的行 例:int (*p) [3]; 含义:定义一个指针变量p,用于指向一行(每行有3个元素) 定义格式 :类型 (*行指针名) [常量N]; 行地址与列地址的区别 读程序 #include string.h main() { int i, pos,findFlag = 0; char x[10]; char weekDay[7][10] = {Sunday,Monday,Tuesday, Wednesday,Thursday,Friday, Saturday}; char (*p)[10] =weekDay; printf(Please enter a string:); scanf(%s, x); for (i=0; i7 !findFlag; i++) { if (strcmp(x, *(p+i)) == 0) { pos = i; findFlag = 1; } } if (findFlag) printf(%s is %d\n, x, pos); else printf(Not found!\n); } 例题8-1 #include stdio.h void ave(float (*p)[3],int n); void main() { int num; float score[5][3]={{65,98,76},{78,69,87}
您可能关注的文档
- 第1课时原子核外电子的排布(30张).ppt
- 第20章抗慢性心功能不全药1217.ppt
- 第20讲企业组织创新.ppt
- 第20课《漂亮的铅笔头》.ppt
- 第21章水和冰.ppt
- 第21章货币增长和通货膨胀.ppt
- 第21课《江南地区的开发》课件.ppt
- 第22课社会生活的变化学案小组.doc
- 第24次课191玻尔氢原子理论12级.ppt
- 第23课新中国初期的外交(课件).ppt
- 2026及未来5年中国卡式收录放机行业发展研究报告.docx
- 2026及未来5年中国煤矿用电力电缆行业发展研究报告.docx
- 2026及未来5年中国水果专用聚乙烯发泡网套行业发展研究报告.docx
- 2026年及未来5年内中国直丝式边续拉线机行业投资前景及策略咨询研究报告.docx
- 2026及未来5年中国语音模块行业发展研究报告.docx
- 2026及未来5年中国高尔夫球网行业发展研究报告.docx
- 2026及未来5年中国双轴自动换盘收线机行业发展研究报告.docx
- 2026及未来5年中国报警锁行业发展研究报告.docx
- 2026及未来5年中国防火浪管接头行业发展研究报告.docx
- 2026及未来5年中国塑料广播车玩具行业发展研究报告.docx
原创力文档

文档评论(0)