C语言教程 函数下课件.ppt

C语言教程 函数下课件.ppt

ID:57057067

大小:529.00 KB

页数:28页

时间:2020-07-30

C语言教程 函数下课件.ppt_第1页
C语言教程 函数下课件.ppt_第2页
C语言教程 函数下课件.ppt_第3页
C语言教程 函数下课件.ppt_第4页
C语言教程 函数下课件.ppt_第5页
资源描述:

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

1、程序设计基础 ——C语言学习目标理解数据在内存中如何存储知道将数组作为函数参数传递的过程数组名作为参数传递——传地址知道地址传递与值传递过程的不同变量或者数组元素作为参数传递——传值函数基本知识回顾函数使用的三个环节:函数必须先声明(三种方式)函数定义:函数的调用:实参:函数调用中使用的参数(常量、变量、表达式)形参函数声明、函数定义时,函数头部中的变量函数调用过程中实参向形参单向顺序值传递函数调用关系Main(){Statement;func1();Statement;func2();Statement;func4();Stateme

2、nt;}主程序func1return;func4return;func2Statement;func3();…………return;func3return;实参向形参单向值传递的限制函数返回值的限制:仅能带回一个值传值的单向特性使得改变形参完全不影响实参(各自独立的拷贝)例:设计一个函数,实现两个变量的交换解决之道原因分析原因分析:地址传递常见错误数组访问越界错误现象1:inta[N];访问数组成员a[N]原因:声明中N表示数组长度,即数组中元素个数访问数组元素时,下标范围为0~N-1,即a[N]元素不存在!错误现象2:被调函数中,访问越

3、界原因:实参向形参仅传递数组起始地址,而不顾及长度,因此数组访问范围由程序员自行控制,编译器不检查传递数组的长度程序开始执行,L13时,内存准备图示averimain:score:0x0012ff580x0012ff640x0012ff600x0012ff5c0x0012ff7cscore[0]score[3]score[2]score[1]score[6]score[5]score[4]score[9]score[8]score[7]程序执行到L21时,内存状态图示averimain:10score:0x0012ff580x0012f

4、f640x0012ff600x0012ff5c0x0012ff7c10098.57856998776977567.5score[0]score[3]score[2]score[1]score[6]score[5]score[4]score[9]score[8]score[7]L23:参数传递示意(3件事,参看备注)averimain:10score:0x0012ff580x0012ff640x0012ff600x0012ff5c0x0012ff7c10098.57856998776977567.5score[0]score[3]scor

5、e[2]score[1]score[6]score[5]score[4]score[9]score[8]score[7]arraysizeaverage:100x0012ff58程序跳转L31,执行到L34时,内存状态图:averimain:10score:0x0012ff580x0012ff640x0012ff600x0012ff5c0x0012ff7c10098.57856998776977567.5score[0]score[3]score[2]score[1]score[6]score[5]score[4]score[9]sco

6、re[8]score[7]arraysizeaverage:100x0012ff58sumiaver程序进入循环,第一次执行到L36时,内存状态图:averimain:10score:0x0012ff580x0012ff640x0012ff600x0012ff5c0x0012ff7c10098.57856998776977567.5score[0]score[3]score[2]score[1]score[6]score[5]score[4]score[9]score[8]score[7]arraysizeaverage:100x001

7、2ff58sumi00aver程序进入循环,第二次执行到L36时,内存状态图:averimain:10score:0x0012ff580x0012ff640x0012ff600x0012ff5c0x0012ff7c10098.57856998776977567.5score[0]score[3]score[2]score[1]score[6]score[5]score[4]score[9]score[8]score[7]arraysizeaverage:100x0012ff58sumi1100aver程序结束循环,执行到L37时,内存状

8、态图:averimain:10score:0x0012ff580x0012ff640x0012ff600x0012ff5c0x0012ff7c10098.57856998776977567.5score[0

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

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

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