变量与函数的声明与定义
来源:互联网 发布:两组数据的差异性分析 编辑:程序博客网 时间:2024/05/17 03:04
一、作用域:局部变量与全局(外部变量)
①局部变量
1、本函数内or本程序区块内(复合语句中定义的变量)才可使用,形参也是局部变量
2、故不同的函数中相同的变量名互不干扰
②全局变量(也称为外部变量)
1、可被本文件其它文件调用
2、有效范围:从定义变量开始至本源文件的结束
二、变量的储存类别
①生存期
1、静态存储方式(全程):运行开始时就已分配(编译时已赋值),直到程序结束
2、动态存储方式(临时):运行时根据需要分配
【包括】
②存储类别
auto:在栈中生成,函数内部默认为auto
static:在编译时就已赋值,且仅此一次
1、静态局部变量 static int a;
仅能在本函数中使用,且函数结束后变量不消失。
再次调用该函数时直接拿该变量来用
2、静态全部变量
仅限于本文件使用,其它文件不能使用
【注】1)静态变量若不赋初值,默认初值为0
2)虽然静态局部变量在函数调用结束后仍存在,但其它函数不能调用
register:存储在寄存器,且在函数使用后自动销毁(这点与auto相同)
extern:声明外部(全局)变量
【例】 int a;
int main() {extern b; return 0;}
int b;
【解析】a、b均为全局变化,但main能直接使用a,但b要再声明
三、跨文件全局变量使用:使用另一文件的全局变量要声明extern a;
四、声明(说明有这个变量存在)与定义(会给予该变量内存空间)
1、外部int a; 即是声明也是定义
2、extern a;只是声明
五、小结
1、作用域:
①局部
1)自动变量 2)静态局部变量 3)寄存器变量
【以及形参,因为形参只能定义为 auto或register】
②全局
1)静态外部变量(只即本文件) 2)外部变量(非静态可由其它文件使用)
2、生存期
①静态
②动态(本函数有效)
1)auto 2)register 3)形参(auto或register)
3、存储位置
①静态存储区(data区)
1)静态变量 2)全局变量
②动态存储区(栈):auto
③CPU:register
六、注意
1、static与全局变量作用不同
对局部变量,static变量调用仍存在
对全局变量,static变量仅限本文件使用
2、函数本质上是全局的(默认为外部函数),1个C文件的函数可以被另一个C文件调用,但可用static进行限制
①外部函数
(extern)int fun(int a);
②内部函数
static int fun(int a);
①局部变量
1、本函数内or本程序区块内(复合语句中定义的变量)才可使用,形参也是局部变量
2、故不同的函数中相同的变量名互不干扰
②全局变量(也称为外部变量)
1、可被本文件其它文件调用
2、有效范围:从定义变量开始至本源文件的结束
二、变量的储存类别
①生存期
1、静态存储方式(全程):运行开始时就已分配(编译时已赋值),直到程序结束
2、动态存储方式(临时):运行时根据需要分配
【包括】
②存储类别
auto:在栈中生成,函数内部默认为auto
static:在编译时就已赋值,且仅此一次
1、静态局部变量 static int a;
仅能在本函数中使用,且函数结束后变量不消失。
再次调用该函数时直接拿该变量来用
2、静态全部变量
仅限于本文件使用,其它文件不能使用
【注】1)静态变量若不赋初值,默认初值为0
2)虽然静态局部变量在函数调用结束后仍存在,但其它函数不能调用
register:存储在寄存器,且在函数使用后自动销毁(这点与auto相同)
extern:声明外部(全局)变量
【例】 int a;
int main() {extern b; return 0;}
int b;
【解析】a、b均为全局变化,但main能直接使用a,但b要再声明
三、跨文件全局变量使用:使用另一文件的全局变量要声明extern a;
四、声明(说明有这个变量存在)与定义(会给予该变量内存空间)
1、外部int a; 即是声明也是定义
2、extern a;只是声明
五、小结
1、作用域:
①局部
1)自动变量 2)静态局部变量 3)寄存器变量
【以及形参,因为形参只能定义为 auto或register】
②全局
1)静态外部变量(只即本文件) 2)外部变量(非静态可由其它文件使用)
2、生存期
①静态
②动态(本函数有效)
1)auto 2)register 3)形参(auto或register)
3、存储位置
①静态存储区(data区)
1)静态变量 2)全局变量
②动态存储区(栈):auto
③CPU:register
六、注意
1、static与全局变量作用不同
对局部变量,static变量调用仍存在
对全局变量,static变量仅限本文件使用
2、函数本质上是全局的(默认为外部函数),1个C文件的函数可以被另一个C文件调用,但可用static进行限制
①外部函数
(extern)int fun(int a);
②内部函数
static int fun(int a);
0 0
- 变量与函数的声明与定义
- 注意函数/变量的声明与定义
- 变量、函数声明与定义
- 变量的定义与声明
- 变量的定义与声明
- 变量的声明与定义
- 变量的声明与定义
- 变量的声明与定义
- 变量的定义与声明
- 变量的声明与定义
- 变量的定义与声明
- 变量的声明与定义
- 变量的声明与定义
- C语言中变量和函数的声明与定义
- C语言中变量和函数的声明与定义
- 变量和函数的声明与定义(C/C++)
- 定义变量 与 声明变量 的区别
- 变量 声明与定义
- composer安装,速度慢
- MongoDB系列二:安装mongoDB C/C++驱动(New C++11 driver)
- [佛教] 记几本唯识入手书籍
- 156 - Ananagrams
- 告别外卖“黑作坊”,零成本打造千万并发后厨直播
- 变量与函数的声明与定义
- 1.安卓开发环境搭建
- Mapnik在CentOS7系统下的编译与安装
- Android 5.1 SoundRecorder 编译
- js基础
- 调用图片或视频文件时没有缩略图显示的原因和解决办法
- Spring cache +redis
- tomcat解压war包
- 经典乱码“烫烫烫”和“屯屯屯”