- 1、本文档共55页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[理学]c语言课件8
main() { int n,i,j,k,x,a[10]; int *p=a; for(i=0; i10;i++) scanf(%d,p+i); for(k=1;k10;k++) for(j=9,i=0;i10-k;i++,j--) if(*(p+j)*(p+j-1)) { x=*(p+j); *(p+j)=*(p+j-1); *(p+j-1)=x;} for(i=0;i10;i++) printf(%5d,*(p+i)); printf(\n); } 例6 用一维数组的指针解决冒泡法排序问题。 二、指针与二维数组 1、二维数组的地址 对于一维数组: (1)数组名array表示数组 的首地址,即array[0] 的地址; (2)数组名array是地址 常量; (3)array+i是元素 array[i]的地址; (4)array[i]?*(array+i) array int array[10]; 对于二维数组: 1)a是数组名, 包含三个元 素a[0],a[1], a[2]; 2)每个元素a[i] 又是一个一维 数组,包含4 个元素。 a a+1 a+2 *(*(a+0)+1) *(a[0]+1) int a[3][4]; a[0]+1 a[1]+1 a[2]+1 *(a+0)+1 *(a+1)+1 *(a+2)+1 a[0] a[1] a[2] 2000 2008 2016 a[0][0] a[0][3] a[1][0] a[1][1] a[2][0] a[2][1] a[0][1] a[0][2] a[1][2] a[1][3] a[2][2] a[2][3] 2000 2002 2008 2010 2016 2018 行指针与列指针 a[0][0] a[0][3] a[1][0] a[1][1] a[2][0] a[2][1] a[0][1] a[0][2] a[1][2] a[1][3] a[2][2] a[2][3] 2000 2008 2016 a[0] a[1] a[2] 2000 2008 2016 a a+1 a+2 *(a[i]+j)?*(*(a+i)+j) ?a[i][j] a:二维数组的首地址, 即第0行的首地址。 对二维数组 int a[3][4], 有: a+i:第i行的首地址。 a[i]?*(a+i):第i行第 0列的元 素地址。 a[i]+j?*(a+i)+j: 第i行第j列 的元素地址。 a[0][0] a[0][3] a[1][0] a[1][1] a[2][0] a[2][1] a[0][1] a[0][2] a[1][2] a[1][3] a[2][2] a[2][3] 2000 2008 2016 a[0] a[1] a[2] 2000 2008 2016 a a+1 a+2 注: (1)a+i=a[i]=a[i][0] =*(a+i)=a[i] 值相等,含义不同 (2)a+i ? a[i],表示 第i行首地址,指向 行。 (3)a[i]?*(a+i) ? a[i][0], 表示第i行第0列元 素地址,指向列。 a[0][0] a[0][3] a[1][0] a[1][1] a[2][0] a[2][1] a[0][1] a[0][2] a[1][2] a[1][3] a[2][2] a[2][3] int a[3][4]; 地址表示: (1) a+1 (2) a[1][0] (3) a[1] (4) *(a+1) (5) (int *)(a+1) 地址表示: a[1][2] (2)*(a+1)+2 (3)a[1]+2 (4)a[0][0]+1*4+2 二维数组元素表示形式: (1)a[1][2] (2)*(a[1]+2) (3)*(*(a+1)+2) (4)*(a[0][0]+1*4+2) 行指针 列指针 表示形式 含 义 地 址 a 二维数组名, 数组首地址 a[0],*(a+0),*a 第0行第0列元素地址 a+1 第1行首地址 a[1],*(a+1) 第1行第0列元素地址 a[1]+2,a[1][2], *(a+1)+2 第1行第2列元素地址 *(a[1]+2),a[1][2], *(*(a+1)+2) 第1行第2列元素值 2
您可能关注的文档
- [理学]7 分子生物学研究法上 —DNA、RNA及蛋白质操作技术.ppt
- [理学]7 超分子分离.ppt
- [理学]7 第四章 微生物的代谢.ppt
- [理学]7 超媒体与GIS集成.ppt
- [理学]7 配位反应.ppt
- [理学]7-3概率.pdf
- [理学]71 向量及其线性运算学生版.ppt
- [理学]7毕萨定律和环路定理.ppt
- [理学]73 二重积分的应用.ppt
- [理学]7炔烃二烯烃.ppt
- 一校方案秋季龙宝清泉中学.pptx
- 内容介绍20102id 16846 rev m32技术.pdf
- pgi练习vhf omni系列实现目标操作设备原理所需限制ex24h range vorEX24HVHF每个范围.pptx
- 公开课unit 8 have you read treasure island section grammar2d课件共音频.pdf
- 详解2012 ansysinc发布研讨会scdm wstion.pdf
- 文本文稿说明.pdf
- 产-英菲尼迪维修信息系统atc 001.pdf
- 中景园文字取模说明显示大字号参考.pdf
- 基础理论与相关法规答案.pdf
- 关于综合实践活动方案报告词.pdf
文档评论(0)