数组、函数、变量/作用域/存储区/生命周期/程序优化、exit标准函数、递归函数
2016-01-12 15:59
344 查看
数组:
(1).一维数组初始化
int arr[5]={1,2,3,4,5};
若初始化数据个数超过存储区个数,则多余的数据被丢掉
若初始化数据个数少于存储区个数,则后面的存储区自动被初始化为0
若初始化数据个数和存储区个数一样,则可以省略数组声明里的存储区个数
(2).二维数组初始化
int arr[2][3]={{1,2,3},{4,5,6}};
函数:
函数调用过程中通常伴随着函数间的数据传递
数据传递存在两个相反的方向,既可以从调用函数传递给被调用函数,也可以从被调用函数传递给调用函数.
无论从哪个方向的数据传递,都需要使用被调用函数提供的存储区来记录数字
main()函数里面的叫做调用函数,main()函数外面的叫做被调用函数.
数组和函数的关系
数组可以作为函数的形式参数
数组作为形式参数的时候,形参和实参都是同一个存储区
![](https://oscdn.geek-share.com/Uploads/Images/Content/202010/10/35836e636680c53f0cac9b653e6307aa)
生命周期:一个存储区只能在某个时间范围内可以使用,这个时间范围叫做存储区的生命周期
对存储区的使用不受作用域的限制,而只受生命周期的限制
作用域:能使用某个变量的所有语句叫做变量的作用域
变量:
变量分为全局变量、局部变量、静态全局变量、静态局部变量
http://blog.sina.com.cn/s/blog_4aae007d0100inxi.html
全局变量和局部变量的关系:
1. 全局变量会占用更多的内存,因为其生命周期长
(全局变量,其生命周期是整个程序执行的时间范围
局部变量,其生命周期是函数某一次执行的时间范围)
2. 使用全局变量程序运行速度会更快,因为内存不需要再分配
3. 局部变量的作用域是函数内部的所有语句,全局变量的作用域是包含程序中的所有语句
4. 没有初始化的全局变量初始化为0
5. 全局变量和局部变量可以重名,这个时候优先选择局部变量
全局变量与静态全局变量的关系:
全局变量:在整个工程文件内都有效
静态全局变量: 只在定义它的文件内有效
作用域:定义点到程序结束,程序运行结束后才释放所占用的内存.
即使两个不同的源文件都定义了相同名字的静态全局变量,它们也是不同的变量
局部变量与静态局部变量:
局部变量:在定义它的函数内有效,但是函数返回后失效
静态局部变量:只在定义它的函数内有效,只是程序仅分配一次内存,函数返回后,
该变量不会消失, 可以跨函数使用静态局部变量的存储区
![](https://oscdn.geek-share.com/Uploads/Images/Content/202010/10/6d28bec71ca738247c1d8890e3f5fb99)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202010/10/27915c22ba729601a2b24c568b050498)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202010/10/bf78232eb655fcd33322f50eec853633)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202010/10/d767ccae491efd7d427977d0a0506a11)
exit标准函数:
exit标准函数可以立刻结束程序的执行
需要包含stdlib.h头文件
这个函数需要一个整数类型的实际参数,它用来告诉计算机程序的结束情况,0表示程序正常结束
![](https://oscdn.geek-share.com/Uploads/Images/Content/202010/10/5da47d332ee84b427fe7282a2d5a7a1a)
递归函数:
1.编写语句描述问题的分解方式(假设递归函数已经完成)
2.在函数开头编写分支处理不可分解的情况(这个函数必须能让函数结束)
(1).一维数组初始化
int arr[5]={1,2,3,4,5};
若初始化数据个数超过存储区个数,则多余的数据被丢掉
若初始化数据个数少于存储区个数,则后面的存储区自动被初始化为0
若初始化数据个数和存储区个数一样,则可以省略数组声明里的存储区个数
(2).二维数组初始化
int arr[2][3]={{1,2,3},{4,5,6}};
函数:
函数调用过程中通常伴随着函数间的数据传递
数据传递存在两个相反的方向,既可以从调用函数传递给被调用函数,也可以从被调用函数传递给调用函数.
无论从哪个方向的数据传递,都需要使用被调用函数提供的存储区来记录数字
main()函数里面的叫做调用函数,main()函数外面的叫做被调用函数.
数组和函数的关系
数组可以作为函数的形式参数
数组作为形式参数的时候,形参和实参都是同一个存储区
生命周期:一个存储区只能在某个时间范围内可以使用,这个时间范围叫做存储区的生命周期
对存储区的使用不受作用域的限制,而只受生命周期的限制
作用域:能使用某个变量的所有语句叫做变量的作用域
变量:
变量分为全局变量、局部变量、静态全局变量、静态局部变量
http://blog.sina.com.cn/s/blog_4aae007d0100inxi.html
全局变量和局部变量的关系:
1. 全局变量会占用更多的内存,因为其生命周期长
(全局变量,其生命周期是整个程序执行的时间范围
局部变量,其生命周期是函数某一次执行的时间范围)
2. 使用全局变量程序运行速度会更快,因为内存不需要再分配
3. 局部变量的作用域是函数内部的所有语句,全局变量的作用域是包含程序中的所有语句
4. 没有初始化的全局变量初始化为0
5. 全局变量和局部变量可以重名,这个时候优先选择局部变量
全局变量与静态全局变量的关系:
全局变量:在整个工程文件内都有效
静态全局变量: 只在定义它的文件内有效
作用域:定义点到程序结束,程序运行结束后才释放所占用的内存.
即使两个不同的源文件都定义了相同名字的静态全局变量,它们也是不同的变量
局部变量与静态局部变量:
局部变量:在定义它的函数内有效,但是函数返回后失效
静态局部变量:只在定义它的函数内有效,只是程序仅分配一次内存,函数返回后,
该变量不会消失, 可以跨函数使用静态局部变量的存储区
exit标准函数:
exit标准函数可以立刻结束程序的执行
需要包含stdlib.h头文件
这个函数需要一个整数类型的实际参数,它用来告诉计算机程序的结束情况,0表示程序正常结束
递归函数:
1.编写语句描述问题的分解方式(假设递归函数已经完成)
2.在函数开头编写分支处理不可分解的情况(这个函数必须能让函数结束)
相关文章推荐
- jQuery认识
- 电子之电磁学学习记录1
- 问题人生[20160112] the App Transport Security policy requires the use of a secure connection
- 调用活动,通过intent隐式调用
- 国内首个CTO企业信息安全调查报告
- Kaggle 机器学习竞赛冠军及优胜者的源代码汇总
- 欢迎使用CSDN-markdown编辑器
- IBatisNet不常用到的配置(Dao.config ConnectionTimeout),居然不起作用(前辈留给我们的坑)
- TestNG介绍
- 停止加载链接
- allegro 使用技巧
- Handler内存泄露
- Android开发笔记(四十五)手势事件
- 第十二章:正则表达式
- Ubuntu 14.04 gcc降级为4.7.x版本
- Zookeeper 快速理解
- Android Studio导入现有工程的几个步骤
- 状态机
- 01背包
- 导航栏的UIBarButtonItem的位置调整,(需求来的太突然)