- 1、本文档共50页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* 数组名与函数名也是指针,而且是常指针。 * Programming In C 指针的算术运算: p?i ? p ?i?d (i为整型数,d为p指向的变量所占字节数) p++, p--, p+i, p-i, p+=i, p-=i等 若p1与p2指向同一数组,p1-p2=两指针间元素个数?(p1-p2)/d p1+p2 无意义 例 p指向float数,则 p+1 ? p+1 ?4 例 p指向int型数组,且p=a[0]; 则p+1 指向a[1] 例 int a[10]; int *p=a[2]; p++; *p=1; 例 int a[10]; int *p1=a[2]; int *p2=a[5]; 则:p2-p1=3; a[0] a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9] a数组 p p+1,a+1 p+i,a+i p+9,a+9 1 Programming In C 指针变量的关系运算 若p1和p2指向同一数组,则 p1p2 表示p1指的元素在前 p1p2 表示p1指的元素在后 p1==p2 表示p1与p2指向同一元素 若p1与p2不指向同一数组,比较无意义 p==NULL或p!=NULL Programming In C 数组元素表示方法 int a[10],*p=a; a[0] a[1] a[2] a[3] a[9] ... a a+9 a+1 a+2 地址 元素 下标法 a[0] a[1] a[2] a[9] a[0] a[1] a[2] a[3] a[9] ... p p+9 p+1 p+2 地址 元素 指针法 *p *(p+1) *(p+2) *(p+9) [] 变址运算符 a[i] ? *(a+i) a[i] ? p[i] ? *(p+i) ?*(a+i) *a *(a+1) *(a+2) *(a+9) p[0] p[1] p[2] p[9] Programming In C a[0] a[1] a[2] a[3] a[4] 例 数组元素的引用方法 main() { int a[5],*pa,i; for(i=0;i5;i++) a[i]=i+1; pa=a; for(i=0;i5;i++) printf(*(pa+%d):%d\n,i,*(pa+i)); for(i=0;i5;i++) printf(*(a+%d):%d\n,i,*(a+i)); for(i=0;i5;i++) printf(pa[%d]:%d\n,i,pa[i]); for(i=0;i5;i++) printf(a[%d]:%d\n,i,a[i]); } 1 2 3 4 5 pa Programming In C main() { int i,*p,a[7]; p=a; for(i=0;i7;i++) scanf(%d,p++); printf(\n); for(i=0;i7;i++,p++) printf(%d,*p); } 例 注意指针的当前值 p=a; p p 5 8 7 6 2 7 3 0 1 2 3 4 5 6 a p p p p p p 指针变量可以指到数组后的内存单元 Programming In C 一级指针变量与一维数组的关系 int *p 与 int q[10] 数组名是指针(地址)常量 p=q; p+i 是q[i]的地址 数组元素的表示方法:下标法和指针法, 即若p=q, 则 p[i] ? q[i] ? *(p+i) ? *(q+i) 形参数组实质上是指针变量,即int q[ ] ? int *q 在定义指针变量(不是形参)时,不能把int *p 写成int p[]; 系统只给p分配能保存一个指针值的内存区(一般2字节);而给q分配2*10字节的内存区 THANK YOU SUCCESS * * 可编辑 Programming In C 三、指针与二维数组 二维数组的地址 对于一维数组: (1)数组名array表示数组的首地址,即array[0]的地址; (2)数组名array是地址常量 (3)array+i是元素array[i]的地址 (4)array[i] ? *(array+i) array int array[10]; Programm
您可能关注的文档
最近下载
- 2023年福建考评员考试答案.docx VIP
- 河南省洛阳涧西区2022—2023学年七年级下学期期中考试语文试卷.docx VIP
- 英语中考短语大全.doc VIP
- 2024《企业盈利能力分析的国内外文献综述》2400字.docx VIP
- 蓝碳生态系统碳汇计量监测技术规程.pdf VIP
- 2025年开封文化艺术职业学院单招职业适应性测试题库及答案一套.docx VIP
- 【广东卷】广东省2025年深圳市高三年级第一次调研考试(深圳一模)(2.19-2.21)化学试卷含答案或解析.pdf
- 医院护理品管圈:降低住院患儿雾化吸入的不配合率.ppt
- 2024年村居后备干部面试试题整理.doc
- 广东省深圳市宝安区2021-2022学年八年级下学期期末数学试卷(Word版含答案).docx VIP
文档评论(0)