数组可以作为形式参数使用
数组做形式参数的时候真正的形式参数并
不是数组而是一个可以作为数组使用的
变量
数组形式参数里包含的存储区都不是被调用
函数提供的
声明数组形式参数的时候可以省略中括号
里的整数
使用数组形式参数的时候必须配合一个整数
类型的形式参数,这个参数用来表示
数组里的存储区个数
数组形式参数可以让被调用函数使用其他函数
的存储区
调用函数和被调用函数都可以自由使用数组
形式参数里的存储区,所以数组形式参数
可以实现双向数据传递,具有这种特征的
形式参数叫输入输出参数 C语言里函数参数的个数可以不固定
这种参数叫做变长参数
不能在编写函数的时候给变长参数命名,
在被调用函数里可以通过特殊的方法
获得没有命名参数的内容 如果编译器首先遇到函数调用语句就会猜测
函数的格式。计算机认为函数有一个整数
类型的存储区用来存放返回值,函数可以
接受任意多个不确定类型的参数。
这个猜测结果叫做函数的隐式声明
隐式声明里参数的类型只能是整数类型或
双精度浮点类型
如果函数的真实格式和隐式声明格式不同
则编译的时候就会出错
可以把函数大括号前面的部分单独写成一条
语句,这种语句叫做函数声明语句
把函数声明语句放在文件开头叫做显式函数
声明
函数的显示声明可以避免隐式声明的发生
函数声明语句里可以省略形式参数的名称 除了主函数以外的所有函数都应该显示声明 exit标准函数可以立刻结束程序的执行
为了使用这个标准函数需要包含stdlib.h头文件
这个函数需要一个整数类型的参数,这个参数
的作用和主函数返回值的作用一样 C语言里函数可以调用自己
这种函数叫做递归函数 如果一个问题可以拆分成多个小问题,至少
一个小问题和原来的问题在本质上一样但是
稍微简单一点。这种问题就适合采用递归
函数解决。 递归函数编写步骤
.编写语句解决分解后的每个小问题
(这个时候要假设递归函数已经完成,
可以使用)
.在递归函数开头编写分支解决不可分解
的情况(这个分支必须可以让函数结束) 使用递归函数解决问题的方法叫递归
使用循环解决类似问题的方法叫递推 检验递归函数的时候先用最简单的参数检验,
然后逐渐把参数变复杂继续检验。如果
所有参数的检验都能成功就说明递归
函数编写正确。 C语言里一个变量只能被某些语句使用,能
使用某个变量的所有语句叫做那个变量
的作用域
声明在某个函数里面的变量叫做局部变量
局部变量的作用域就是函数里面的所有语句
声明在所有函数外边的变量叫全局变量
全局变量的作用域包含程序里的所有语句
没有初始化的全局变量会自动被初始化成0
全局变量和局部变量可以重名,重名变量名
优先代表局部变量
如果全局变量和局部变量都能解决问题就
应该优先选用局部变量 存储区的使用不受作用域限制,但是受到
生命周期限制
生命周期指一段时间,在生命周期开始的时候
计算机把存储区分配给程序使用,在
生命周期结束的时候计算机把存储区收回
全局变量的生命周期就是整个程序的执行时间
局部变量的生命周期是函数某一次执行的
时间范围

递归、作用域、生命周期(day09)的更多相关文章

  1. 存储类&作用域&生命周期&链接属性

    链接属性 (1)大家知道程序从源代码到最终可执行程序,经历的过程:编译.链接. (2)编译阶段就是把源代码搞成.o目标文件,目标文件里面有很多符号和代码段.数据段.bss段等分段.符号就是编程中的变量 ...

  2. 7、存储类 & 作用域 & 生命周期 & 链接属性

    概念解析 存储类 存储类就是存储类型,也就是描述C语言变量在何种地方存储. 内存有多种管理方法:栈.堆.数据段.bss段..text段······一个变量的存储类属性就是描述这个变量存储在何种内存段中 ...

  3. C语言-存储类&作用域&生命周期&链接属性

    1.概念解析(1)存储类 a.存储类就是存储类型,也就是描述C语言变量在何种地方存储. b.内存有多种管理办法:栈.堆.数据段.bss段..text段......一个变量的存储类属性就是描述这个变量存 ...

  4. struts1的ActionForm的作用域(生命周期)

    转自:http://biancheng.dnbcw.info/java/240347.html 今天查找一个问题:我在列表页面添加一个查询条件,然后查询符合条件的数据.查询结果正确.然后我进入其它菜单 ...

  5. C的变量类型、作用域与生命周期的总结

    C的变量类型.作用域与生命周期的总结 最近在看"C Programing Language" (Kernighan, Ritchie)关于外部变量的讨论,之前在学C的时候对这些ex ...

  6. Mybatis中的基本对象的生命周期和作用域

    不同作用域和生命周期类别是至关重要的,因为错误的使用会导致非常严重的并发问题 SqlSessionFactoryBuilder 这个类可以被实例化.使用和丢弃,一旦创建了 SqlSessionFact ...

  7. 07、NetCore2.0依赖注入(DI)之生命周期

    07.NetCore2.0依赖注入(DI)之生命周期 NetCore2.0依赖注入框架(DI)是如何管理注入对象的生命周期的?生命周期有哪几类,又是在哪些场景下应用的呢? -------------- ...

  8. 018-019 NET5_内置容器支持依赖注入+IServiceCollection的生命周期

    概念: DI依赖注入: IServiceCollection仅支持构造函数注入 什么是依赖注入? 如果对象A依赖对象B,对象B依赖对象C,就可以先构造对象C,然后传递给对象B,再把对象B传递给A.得到 ...

  9. Spring中Bean的作用域、生命周期

                                   Bean的作用域.生命周期 Bean的作用域 Spring 3中为Bean定义了5中作用域,分别为singleton(单例).protot ...

随机推荐

  1. GDUT Krito的讨伐(bfs&&优先队列)

    题意 Description Krito最终干掉了99层的boss,来到了第100层. 第100层能够表示成一颗树.这棵树有n个节点(编号从0到n-1),树上每个节点可能有非常多仅仅怪物. Krito ...

  2. JArray获取元素值

    MXS&Vincene  ─╄OvЁ  &0000003 ─╄OvЁ  MXS&Vincene MXS&Vincene  ─╄OvЁ:今天很残酷,明天更残酷,后天很美好 ...

  3. 你不知道的JavaScript--Item33 跨域总结与解决的方法

    一.神马是跨域(Cross Domain) 说白点就是post.get的url不是你当前的站点,域名不同.比如在*aaa.com/a.html*里面,表单的提交action是bbb.com/b.htm ...

  4. arm linux串口蓝牙工具移植及使用【转】

    本文转载自:http://blog.csdn.net/hclydao/article/details/51451725 p6212中串口蓝牙在linux下的使用记录 一.linux蓝牙工具移植 主要使 ...

  5. C# textbox中输入时加限制条件 // C#Winform下限制TextBox只能输入数字 // 才疏学浅(TextBox 小数点不能在首位+只能输入数字)

    textbox中输入时加限制条件 分类: C# winform2008-08-26 08:30 306人阅读 评论(0) 收藏 举报 textbox正则表达式object 1.用正则表达式! 2.使用 ...

  6. UESTC--1251--谕神的密码(贪心)

     谕神的密码 Time Limit: 1000MS   Memory Limit: 65535KB   64bit IO Format: %lld & %llu Submit Status ...

  7. Oracle 字符拼接

    使用的是ORACLE中的cast函数: 官方链接: https://docs.oracle.com/cd/E11882_01/server.112/e41084/functions023.htm#SQ ...

  8. 浅谈自学Python之路(day2)

    今天的主要内容是: 标准库 数据类型知识 数据运算 三元运算 bytes类型 字符串操作 字典 集合 标准库 Python的强大之处在于他有非常丰富和强大的标准库和第三方库,几乎你想实现的任何功能都有 ...

  9. ThreadLocal类详解

    学习一个东西首先要知道为什么要引入它,就是我们能用它来干什么.所以我们先来看看ThreadLocal对我们到底有什么用,然后再来看看它的实现原理. ThreadLocal如果单纯从名字上来看像是“本地 ...

  10. 跳出双重for循环的案例__________跳出当前循环(continue out)

    package com.etc.operator; public class demo { public static void main(String[] args) { // break out; ...