下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数组与指针有很密切的联系,常见的结合情况有以下三种:?数组指针?指针数组?二维数组指针2数组指针数组指针:指向数组的指针。女口:int arr = 0,1,2,3,4;int *p = arr;/ 也可写作 int *p=&arr0也就是说,p, arr,&arr0都是指向数组的开头,即第0个元素 的地址。如果一个指针p指向一个数组arr的开头,那么p+i为数组第i 个元素的地址,即&arri,那么*(p+i)为数组第i个元素的值,即 arri 。同理,若指 针p指向数组的第n个元素,那么p+i为第n+1个元素 的地址;不管p指向了数组的第几个元素,p+1总是指向下一个
2、元素, p-1也总是指向上一个元素。下面示例证实了这一点:#i nclude<stdio.h>int main (void)int arr = 0,1,2,3,4;int *p = &arr3;/ 也可以写作 int *p = arr + 3;prin tf("%d, %d, %d, %d, %dn",*(p-3), *(p-2), *(p-1), *(p), *(p+1);return 0;运行结果为:0, 1,2, 3, 43指针数组指针数组:数组中每个元素都是指针。如:int a=1,b=2,c=3;int *arr3 = &a,&
3、b,&c;示例程序:#i nclude <stdio.h>int main (void)int a =1, b =2, c =3;/定义一个指针数组int *arr3 = &a, &b, &c;/也可以不指定长度,直接写作int*parr/定义一个指向指针数组的指针int *parr = arr;prin tf("%d, %d, %dn", *arr0, *arr1, *arr2);prin tf("%d, %d, %dn", *(par 叶0), *(parr+1), *(parir+2);return 0;
4、第一个printf() 语句中,arri表示获取第i个元素的值,该元素是一个指针,还需要在前面增加一个*才能取得它指向的数据, 也即*arri 的形式。第二个 printf() 语句中,parr+i 表示第i 个元素的地址, *(parr+i) 表示获取第i 个元素的值(该元素是一个指针),*(parr+i) 表示获取第i个元素指向的数据。指针数组还可以和字符串数组结合使用,请看下面的例子:#i nclude <stdio.h>int main (void)char *str3="hello C","hello C+","hello
5、 Java"prin tf("%sn%sn%sn", str0, str1, str2);return 0;运行结果为:hello Chello C+hello Java4二维数组指针二维数组指针:指向二维数组的指针。如:int a34 = 0, 1,2, 3, 4, 5, 6, 7, 8, 9, 10, 11 ;int (*p)4 = a;a34 表示一个3行4列的二维数组,其所有元素在内存中是连 续存储的。请看如下程序:#i nclude <stdio.h>intmain (void)int a34 = 0,1,2,3, 4,5,6,7,8,9,1
6、0,11 ;int i,j;for( i =0; i <3; i+ )for( j =0; j <4; j+ )printf("a%d%d=%dn", i, j, &aij);return 0;运行结果为:a00=6422216a01=6422220a02=6422224a03=6422228a10=6422232a11=6422236a12=6422240a13=6422244a20=6422248a21=6422252a22=6422256a23=6422260可见,每个 元素的地址都是相差4个字节,即每个连续在内存中是 连续存储的。按照以上定义可归纳出如下4个结论:(1)p指向数组a的开头,也即第1行;p+1前进一行,指向第2行(2)*(p+1)表示取第2行元素(一整行元素)。(3)*(p+1)+1 表示第2行第2个兀素的地址。(4)*(*(p+1)+1) 表示第2行第2个元 素的值。综上4点,可得出如下结论:a+i
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 11.2.1 三角形的内角
- 青岛版小学五年级《科学》下册备课教案
- 2024年9月湖南娄底新化事业单位面试题及答案全套
- 月考试卷(1-2单元)(试题)-2024-2025学年六年级上册数学北师大版
- 《漫话一对师徒轻点几种方法》教学设计
- 随堂学案:赏经典片断学写作方法
- 【作文指导】写作中的“以小见大”
- 近代德国政治制度与具有独特性的现代化进程
- 第六单元测试卷(单元卷)-2024-2025学年六年级上册语文统编版
- 记账实操-电脑批发零售店的账务处理分录
- Unit 2What time is it?BLet’s talk(教案) 英语四年级下册
- 成都市社会保险人员减少表 - 成都市劳动保障局
- 如何提高成本意识(课堂PPT)
- 劳动教育特色学校创建计划
- 级配砂石换填专项施工方案(可编辑)
- 幼儿园伙食费管理制度
- 做纸桥(课堂PPT)
- 中国结艺编织ppt课件
- 柯桥市场研究报告对柯桥城市、市场、客户需求(将近400份的问卷调查和20份的深度访谈)和项目进行了可观细致的分析
- 喷锚施工作业记录表(范本)
- 教育科研课题制度
评论
0/150
提交评论