第八讲_指针和输出参数_第1页
第八讲_指针和输出参数_第2页
第八讲_指针和输出参数_第3页
第八讲_指针和输出参数_第4页
第八讲_指针和输出参数_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1 第四讲反向数据传递 输出参数 2 主要内容 变量的作用域 全局变量和局部变量输出参数的概念和运用场合指针的概念使用指针变量向主调函数传值的方法 3 变量的作用域 全局变量和局部变量 5 3变量与函数5 3 1局部变量和全局变量5 3 2变量生命周期和静态局部变量 4 5 3 1局部变量和全局变量 局部变量在函数内定义的变量 包括形参 作用范围 本函数内部定义在复合语句内的变量作用范围 复合语句内部全局变量在函数以外定义的变量 不从属于任一函数 作用范围 从定义处到源文件结束 包括各函数 5 例5 6在复合语句中定义局部变量 includeintmain void inta a 1 复合语句开始 intb 2 b a b a a b 复合语句结束 printf d a return0 b 小范围内的临时变量 4 6 例5 7全局变量定义 include stdio h intx 定义全局变量x intf intx 4 x为局部变量 returnx intmain void inta 1 x a 对全局变量x赋值 a f a的值为4 intb 2 b a b b的值为4 x x b 全局变量运算 printf d d a x return0 4 7 若局部变量与全局变量同名 局部变量优先 7 自动变量 auto 普通的局部变量intx y autointx y charc1 autocharc1 函数调用时 定义变量 分配存储单元 函数调用结束 收回存储单元 全局变量 从程序执行开始 到程序的结束 存储单元始终保持 变量生命周期变量从定义开始分配存储单元 到运行结束存储单元被回收的整个过程 5 3 2变量生命周期和静态局部变量 8 存储类型 动态存储 自动变量静态存储 全局变量 静态局部变量用户存储空间 存储区 9 例5 9静态局部变量示例 includevoidfun intk intmain void intk for k 1 k 3 k fun k return0 voidfun intk staticinta printf d a a k 0 1 3 静态变量会记住前一次调用时留下来的值 静态变量的初值为0 10 输出参数的运用场合 子函数要操作主调函数的局部变量 按名访问不能实现需求一 子函数需要直接操作主调函数中的变量空间需求二 子函数需要返回多个结果到主函数 11 需求一 构造交换算法swapvoidswap inta intb intt t a a b b t 传参的实质是子函数获得了数据备份 子函数交换的是局部变量a和b的值 与主调函数中的变量无关子函数需要直接操作主调函数中的变量空间 才能完成交换 不成功 调用后主调函数中的两个变量的值没有交换 12 需求二 求某天是该年的几月几日2010年的第145天是几月几日需要返回月和日两个结果 13 解决方案 输出参数 将主调函数中变量的地址作为参数传递到子函数 a b子函数中接受主调函数中变量的地址 对主调函数中变量按地址访问 能接受地址的参数称为输出参数能接受地址的参数变量就是指针变量 14 指针的概念 指针就是内存空间的地址指针变量就是可以存放地址的变量 指针变量有数据类型 数据类型确定指针变量从其值 地址值 开始可控制的字节数及比特流的解释方法 使用指针变量可突破局部变量的使用范围的限制 按地址访问所指向的内存空间 15 指针变量的定义 变量名int p 16 指向操作 给指针变量赋地址值p a a p 17 引用 引用的实质是按指针变量的地址值访问内存空间 p a 18 使用指针变量向主调函数传值的方法 使用输出参数获取主调函数中局部变量的地址值输出参数是指针变量在子函数中通过指针变量访问主调函数的局部变量 19 交换算法的实现sample02 18 cpp voidswap int pa int pb intt t pa pa

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论