C语言程序设计第四版-8-PPT-谭浩强.ppt

C语言程序设计第四版-8-PPT-谭浩强.ppt

ID:62254348

大小:267.00 KB

页数:38页

时间:2021-04-23

C语言程序设计第四版-8-PPT-谭浩强.ppt_第1页
C语言程序设计第四版-8-PPT-谭浩强.ppt_第2页
C语言程序设计第四版-8-PPT-谭浩强.ppt_第3页
C语言程序设计第四版-8-PPT-谭浩强.ppt_第4页
C语言程序设计第四版-8-PPT-谭浩强.ppt_第5页
资源描述:

《C语言程序设计第四版-8-PPT-谭浩强.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第8章指针指针是C语言的一个重要特色;正确而灵活地运用指针可以:有效表示复杂的数据结构;能动态分配内存;方便地使用字符串;有效而方便地使用数组;在调用函数时能获得1个以上的结果;能直接处理内存单元的地址可以使程序简洁、紧凑、高效关于指针由内存单元组成,每个单元有地址,存放一字节数据内存储器000000011111010013A613A513A7shortinta;变量aa=500;内存地址是二进制数,通常写成十六进制内存地址──内存中存储单元的编号计算机内存由大量存储单元(memoryunit)组成

2、。每个存储单元容量为1字节(byte)。每个存储单元有编号,即存储单元的“地址”(address)。存储单元中可存放数据(data)。变量的地址定义变量时,系统分配给变量的内存单元的起始地址变量值的存取通过变量在内存中的地址进行变量的地址称为“指针”(pointer)(1)直接访问──直接利用变量的地址进行存取例:shortinta;//分配内存地址a=500;在符号表中检索变量名a,找到其起始地址(例如13A6);将数值500(的二进制形式)送到内存单元13A6和13A7中变量的访问方式(2)间接

3、访问──通过指针变量访问变量地址定义一种特殊的变量,用来存放其它变量的地址(指针),这种变量称为指针变量,它指向一个普通的变量。变量的访问方式指针变量的定义和调用inta;int*a_pointer;a=500;a_pointer=&a;printf("%d",*a_pointer);printf("%x",a_pointer);*a_pointer=3;定义一个指针变量它指向一个整型变量(基类型)给指针变量赋值指针变量的值是另一个变量的地址指针变量所指向的变量即a的值指针变量的值,即a的地

4、址对指向的变量(即a)赋值例:73页输出格式两个指针变量交换了它们的值,也就是交换了指向intmain(){intn1,n2;int*n1_p=&n1,*n2_p=&n2,*pointer;printf("Inputn1:");scanf("%d",n1_p);printf("Inputn2:");scanf("%d",n2_p);printf("n1=%d,n2=%d",n1,n2);printf("*n1_p=%d,*n2_p=%d",*n1_p,*n2_p);printf("n1_p=

5、%o,n2_p=%o",n1_p,n2_p);pointer=n1_p;n1_p=n2_p;n2_p=pointer;printf("n1=%d,n2=%d",n1,n2);printf("*n1_p=%d,*n2_p=%d",*n1_p,*n2_p);printf("n1_p=%o,n2_p=%o",n1_p,n2_p);}例.分析以下程序运行结果开始时指针变量n1_p指向n1,指针变量n2_p指向n2。变量n1和n2的值并没有改变,但n1_p和n2_p的值改变了,也就是指向改变了

6、。指针变量n1_p指向n2,指针变量n2_p指向n1。上页代码要点内存内存单元内存单元的地址变量的首地址指针指针变量指针变量的指向直接访问与间接访问掌握几个重要概念区别两个*pint*p;p=&a;*p=3;指针变量的重要作用之一——作为函数的参数,实现地址传递intmain(){voidswap(intp1,intp2);inta,b;scanf("%d,%d",&a,&b);if(a

7、dswap(intp1,intp2){intp;p=p1;p1=p2;p2=p;}运行结果:a,b没有交换。原因:C语言中,实参向形参传递数据采用“值传递”,形参单独占用内存单元,交换对实参无影响。voidswap(int*p1,int*p2){intp;p=*p1;*p1=*p2;*p2=p;}例通过指针变量实现地址传递的效果注意这两个*p1的含义不同,前者说明p1为指针变量,后者表示p1所指向的变量。intmain(){voidswap(int*p1,int*p2);inta,b;int*a_p

8、=&a,*b_p=&b;scanf("%d,%d",&a,&b);if(a

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。