- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[工学]福建师范大学 c语言 第十章指针和数组
指针和数组 对二维数组 int a[3][4],有 a-----二维数组的首地址,即第0行的首地址 a+i-----第i行的首地址 a[i] ? *(a+i)------第i行第0列的元素地址 a[i]+j ? *(a+i)+j -----第i行第j列的元素地址 *(a[i]+j) ? *(*(a+i)+j) ? a[i][j] 二维数组的指针变量 指向二维数组元素的指针变量 指向一维数组的指针变量 定义形式: 数据类型 (*指针名)[一维数组维数]; 例 int (*p)[4]; 二维数组的指针作函数参数 用指向变量的指针变量 用指向一维数组的指针变量 用二维数组名 指针数组 用于处理二维数组或多个字符串 指针数组 定义:数组中的元素为指针变量 定义形式:[存储类型] 数据类型 *数组名[数组长度说明]; 例 int *p[4]; References Chapter 12 Chapter 13.7 例 将数组a中的n个整数按相反顺序存放 #include stdio.h void inv(int *x, int n) { int t,*i,*j,*p,m=(n-1)/2; i=x; j=x+n-1; p=x+m; for(;i=p;i++,j--) { t=*i; *i=*j; *j=t; } } void main() { int i,a[10],*p=a; for(i=0;i10;i++,p++) scanf(%d,p); p=a; inv(p,10); printf(The array has been reverted:\n); for(p=a;pa+10;p++) printf(%d,*p); } 实参与形参均用指针变量 例 将数组a中的n个整数按相反顺序存放 void inv(int x[], int n) { int t,i,j,m=(n-1)/2; for(i=0;i=m;i++) { j=n-1-i; t=x[i]; x[i]=x[j]; x[j]=t; } } void main() { int i,a[10],*p=a; for(i=0;i10;i++,p++) scanf(%d,p); p=a; inv(p,10); printf(The array has been reverted:\n); for(p=arr;parr+10;p++) printf(%d ,*p); } 实参用指针变量,形参用数组名 对于一维数组: (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] a[1] a[2] 2000 2010 2020 2000 2004 2010 2014 2020 2024 a[0][0] a[0][1] a[1][0] a[1][1] a[2][0] a[2][1] a[0][2] a[0][3] a[1][2] a[1][3] a[2][2] a[2][3] 行指针与列指针 a[0]+1 a[1]+1 a[2]+1 *(a+0)+1 *(a+1)+1 *(a+2)+1 a+i=a[i]=a[i]=*(a+i) =a[i][0], 值相等,含义不同 a+i ? a[i],表示第i行首地址,指向行 a[i] ? *(a+i) ? a[i][0],表示第i行第0列元素地址,指向列 int a[3][4]; a[0] a[1] a[2] 2000 2010 2020 2000 2004 2010 2014 2020 2024 a[0][0] a[0][1] a[1][0] a[1][1] a[2][0] a[2][1] a[0][2] a[0][3] a[1][2] a[1][3] a[2][
您可能关注的文档
最近下载
- 物业市场拓展工作计划方案.docx VIP
- 贝壳加盟合同协议.docx VIP
- 部编版二年级上册道德与发治第1、2次集体备课.pdf VIP
- 2021环境影响评价报告公示:废催化剂综合利用环评报告.docx VIP
- 新解读《渠道防渗衬砌工程技术标准 GB_T 50600-2020》最新解读.docx VIP
- 聚醚改性的聚异氰酸酯组合物.pdf VIP
- 工程项目驻场运维方案(3篇).docx VIP
- 2022年“学宪法讲宪法”活动知识竞赛题库.docx VIP
- 食品生产许可培训课件.ppt
- 2025纪念中国人民抗日战争暨世界反法西斯战争胜利80周年主题党课传承抗战精神开创美好未来.pptx VIP
文档评论(0)