C语言课程变量的作用域和生存周期、递归

函数的定义和函数的调用 函数定义格式: 返回值类型 函数名(类型 参数1,类型 参数2,…) { 函数体 return 表达式; } 函数调用格式: 函数名(参数1,参数2,…); 函数定义的语法远比函数调用的要严格很多 函数原型 函数和变量一样,要先定义后使用 如果函数调用出现在函数定义之前,必须使用函数原型说明该函数有几个参数,参数的类型,和返回值的类型,才能保证编译器正常完成工作 示例 double add(double,double); int main() { …… add(a,b); return 0; } double add(double x,double y) { …… } 对函数接口加以注释说明 /* 函数功能:实现××××功能 函数参数:参数1,表示××××× 参数2,表示××××× 函数返回值: ××××× */ 返回值类型 函数名(参数表) {函数体return 表达式; } 主要内容 变量的作用域和生存周期 函数的嵌套调用和模块化原则 函数的递归调用 重点 & 难点 变量的作用域和生存周期 重点、难点 模块化原则 重点、难点 需要实践和经验 函数的递归调用 难点 变量的作用域 #include int main() { int a = 1; { int a = 2; printf("In the INNER block, a = %d\n", a); } printf("In the OUTER block, a = %d\n", a) return 0; } #include int main() { int a; { int b; { int c; a = 0; b = 0; c = 0; d = 0; } a = 0; b = 0; c = 0; d = 0; } { int d; a = 0; b = 0; c = 0; d = 0; } a = 0; b = 0; c = 0; d = 0; return 0; } 比较两程序 #include int main() { int a = 3, b = 5,temp; printf("before swap,a=%d,b=%d",a,b); temp = a; a = b; b = temp; printf("after swap,a=%d,b=%d",a,b); return 0; } #include void swap(int a,int b) { int temp; temp = a; a = b; b = temp; } int main() { int a = 3, b = 5,temp; printf("before swap,a=%d,b=%d",a,b); swap(a,b); printf("after swap,a=%d,b=%d",a,b); return 0; } 说明 被大括号括起来的区域,叫做语句块(Block) 函数体、循环体、分支结构都可以看作语句块 变量的作用域规则是: 每个变量仅在定义它的语句块内(包含下级语句块)内有效,并拥有自己的内存空间 同一语句块内不可以定义同名变量,不同语句块内可以定义同名变量 变量的作用是表征变量的作用范围,属于空间概念 按照变量的作用域,变量可以分为全局变量和局部变量 #include int a = 3, b = 5; //定义全局变量 void swap() { int temp; temp = a; a = b; b = temp; } int main() { printf("before swap,a=%d,b=%d",a,b); swap(a,b); printf("after swap,a=%d,b=%d",a,b); return 0; } #include extern int a,b; void swap() { int temp; temp = a; a = b; b = temp; } int main() { printf("before swap,a=%d,b=%d",a,

c语言递归函数变量作用域,C语言课程变量的作用域和生存周期、递归.ppt相关推荐

  1. c语言递归函数头文件,C语言函数,递归,功能模块头文件(习题)

    递归:直接或者间接调用自身函数 1. 返回值 函数名(形参) { ... 函数名(实参); ... } 注:  1,when从什么时候     2,when到什么时候结束     3,what 每次递 ...

  2. java 变量作用域 c语言_C语言深入理解 - 常量与变量

    ++++++++++++++++++++++++++++++++++++++++++ <C语言深入理解系列 - 常量与变量> 查看其它博文请关注原创作者. 本文系本站原创,欢迎转载! 转载 ...

  3. 【C语言进阶】函数三要素,变量作用域、生存周期、存储类型

    目录 写在前面 一.函数的用法 1.声明 2.调用 3.定义 形参与实参类型不一致 形参与实参类型一致 函数值类型与返回值类型不一致 函数值类型与返回值类型一致 二.变量的作用域与生存周期 三.变量的 ...

  4. c语言字体属性,【C】 5_变量属性

    C语言的变量属性 C语言中的变量可以有自己的属性 在定义变量的时候可以加上"属性"关键字 "属性"关键字指明变量的特殊意义 语法: `property type ...

  5. 厦门大学c语言上机答案,厦门大学C语言程序设计2016模拟题讲评及课程复习.pptx...

    <C语言程序设计>课程复习及模拟题讲评;<C语言程序设计>试卷各类题目分数分布情况 一.选择题 40分(20小题, 每题2分 ) 主要考核基本概念, 词法, 语法和小程序阅读等 ...

  6. 【C 语言】变量本质 ( 变量概念 | 变量本质 - 内存空间别名 | 变量存储位置 - 代码区 | 变量三要素 )

    文章目录 一.变量概念 二.变量本质 1.变量本质 - 内存别名 2.变量存储位置 - 代码区 3.变量三要素 一.变量概念 变量概念 : 变量 是 既能读 , 又能写 的 内存对象 ; 与 变量 相 ...

  7. 【C语言】20-static和extern关键字2-对变量的作用

    说明:这个C语言专题,是学习iOS开发的前奏.也为了让有面向对象语言开发经验的程序员,能够快速上手C语言.如果你还没有编程经验,或者对C语言.iOS开发不感兴趣,请忽略 上一讲介绍了static和ex ...

  8. A13在c语言中是合法变量吗,C语言中局部变量和全局变量等在内存中的存放位置.doc-资源下载在线文库www.lddoc.cn...

    C语言中局部变量和全局变量_等在内存中的存放位置.doc C 语言中局部变量和全局变量 变量的存储类别static,extern,auto,register 8.8 局部变量和全局变量在讨论函数的形参 ...

  9. 在c语言中函数的定义变量的值为,变量定义(C语言中变量的声明和定义)

    变量定义(C语言中变量的声明和定义),哪吒游戏网给大家带来详细的变量定义(C语言中变量的声明和定义)介绍,大家可以阅读一下,希望这篇变量定义(C语言中变量的声明和定义)可以给你带来参考价值. 3.函数 ...

最新文章

  1. Missing separate debuginfos, use: debuginfo-install
  2. 2019数字化趋势:未来5年政府、零售数字化程度将达80%
  3. 守护线程与非守护线程的区别
  4. kaggle的discussion区都是些什么鬼?
  5. 信息学奥赛一本通(1163:阿克曼(Ackmann)函数)
  6. loadRunner目录分析二
  7. 周鸿祎回应年会特等奖「免裁券」;微信放开 5000 人好友上限;Firefox 72 正式发布| 极客头条...
  8. 测试用例设计设计方法——正交实验法
  9. PS 如何制作WIN7的玻璃化透明窗口效果
  10. blos硬盘启动台式计算机,电脑如何bios设置硬盘启动顺序?掌握这6大类型是关键!...
  11. 后台提示登录失败----YYC松鼠短视频开源
  12. 【毕设教程】OLED屏幕介绍与使用
  13. c语言中地址值是什么意思,单片机C语言中如何区别是地址还是数值啊?
  14. LTE-LAA中的LBT详解
  15. 闲人闲谈PS之二十八——PS模块底层架构设计初探
  16. #芯片# LTC2990
  17. CLI, CILCLR
  18. 3.8-7.25 partB
  19. BUUCTF-强网杯-随便注
  20. 笔记本计算机忘记密码,win7笔记本电脑密码忘记了怎么办_win7笔记本电脑密码忘了怎么办-win7之家...

热门文章

  1. 酷!GitHub开发者自研火星车,开发教程全面开源
  2. 时隔6年,NASA再造仿人机器人,或将在太空工作,应对严苛环境
  3. 单片机实用工具大全,超级赞,工程师必备!
  4. golang interface的使用和实现(翻译整理)
  5. JWT(Json web token)认证详解
  6. quartz CronExpression表达式
  7. NOIP练习赛题目5
  8. numpy 函数一:linspace
  9. ios学习Day3xiawu
  10. Arduino 各种模块篇 步进电机 step motor( 不用库,不用shield, 纯)