C语言指针讲义ppt课件.ppt

C语言指针讲义ppt课件.ppt

ID:59421804

大小:487.00 KB

页数:39页

时间:2020-09-19

C语言指针讲义ppt课件.ppt_第1页
C语言指针讲义ppt课件.ppt_第2页
C语言指针讲义ppt课件.ppt_第3页
C语言指针讲义ppt课件.ppt_第4页
C语言指针讲义ppt课件.ppt_第5页
资源描述:

《C语言指针讲义ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、主要教学内容补充知识内存空间和地址程序的内存空间二.指针与函数的相关概念指针的引用重点函数的相关概念难点三.指针作为函数参数重点、难点四.指针作为参数小结一.补充知识1.内存空间和地址对于计算机系统,为了更好的利用内存,对内存空间以字节为单位进行编址,即形成了内存地址。如果有下面代码段:inta=8;intb=a+2;则系统会为int类型变量a和b分配内存空间,如图所示(假设int类型占2个字节)。一.补充知识2.程序的内存空间代码区全局数据区栈区堆区存放动态申请空间的变量存放程序代码存放全局变量、静态

2、变量存放局部变量、函数返回地址一.补充知识代码区全局数据区栈区堆区存放动态申请空间的变量存放程序代码存放全局变量、静态变量存放局部变量、函数返回地址静态存储区{2.程序的内存空间一.补充知识代码区全局数据区栈区堆区存放动态申请空间的变量存放程序代码存放全局变量、静态变量存放局部变量、函数返回地址静态存储区动态存储区{{2.程序的内存空间一.补充知识inta=9;staticintb=8;voidmain(){intc=6;while(c>0){staticintd=0;inte=e+d+c;d++;c-

3、-;}}代码区全局数据区栈区堆区代码a,b,dc,e全局变量局部变量静态变量静态变量二.指针与函数的相关概念指针的相关概念(1)指针的主要作用作为函数参数和申请动态空间(2)指针的引用如果有以下代码:inta=8;int*p=&a;printf(“%X,%d”,p,*p);p存放a的地址值*p是a的值。注意:p与*p的区别。……20008……20042000pa内存地址二.指针与函数的相关概念指针的相关概念(1)指针的主要作用作为函数参数和申请动态空间(2)指针的引用如果有以下代码:inta=8;i

4、nt*p=&a;printf(“%X,%d”,p,*p);p存放a的地址值*p是a的值。注意:p与*p的区别。屏幕输出:2000,8……20008……20042000pa内存地址2.函数的相关概念(1)形参和实参intmax(intx,inty)voidmain(){{if(x>y)returnx;inta=8,b=6;elsereturny;intc=max(a,b);}}实参形参二.指针与函数的相关概念2.函数的相关概念(2)值传递和引用传递值传递:函数调用时,实参将自身的值(实际要操作的数据)

5、拷贝给形参,函数中对形参的改变不会影响实参的值。又分为:传值和传地址。引用传递:函数调用时,实参将自身的引用传给形参,函数中对形参的改变直接影响实参的值。注意:C语言不支持引用传递二.指针与函数的相关概念三.指针作为函数参数指针作为函数参数的一般形式为返回值函数名(类型*p1,…,[类型s,]…){……}例如:voidfun1(int*p,int*q);inta=8,b=6;int*p1=&a,*p2=&b;fun1(p1,p2);200420006820082004p1ba2000p2200C参数传递

6、实质是值传递指针形参非指针形参内存地址三.指针作为函数参数下面通过一个指针作为参数与普通变量作为参数对比的例子讲解指针作为函数参数的实质。例子:指针作为函数参数举例。#includevoidSwap_inValue(intx,inty){//本函数企图交换两个整数的值inttemp=x;x=y;y=temp;}……数值数值数值201C2018tempyx2014内存地址三.指针作为函数参数//本函数企图交换两个整数的值。voidSwap_inPointer(int*x,int*y){i

7、nttemp=*x;*x=*y;*y=temp;}这里,变量x,y存放地址值,*x,*y存放其地址对应单元的数值。……数值地址地址201C2018tempyx2014内存地址三.指针作为函数参数voidmain(){inta=3;intb=5;printf("a=%d,b=%d",a,b);Swap_inValue(a,b);printf("a=%d,b=%d",a,b);int*p1=&a;int*p2=&b;Swap_inPointer(p1,p2);printf("a=%d,b=%d"

8、,a,b);}}这两行代码可以省略三.指针作为函数参数voidmain(){inta=3;intb=5;printf("a=%d,b=%d",a,b);Swap_inValue(a,b);printf("a=%d,b=%d",a,b);int*p1=&a;int*p2=&b;Swap_inPointer(p1,p2);printf("a=%d,b=%d",a,b);}内存地址a2000b2004p12008p2200C三.指针作

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

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

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