C语言中数据的两种属性及static的作用
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了C语言中数据的两种属性及static的作用,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1187字,纯文字阅读大概需要2分钟。
内容图文
![C语言中数据的两种属性及static的作用](/upload/InfoBanner/zyjiaocheng/1227/936720e2d1d446e2989aa30cac97bed2.jpg)
C语言中数据有两种属性:数据类型和存储类别。数据类型定义了数据格式(长度),存储类别定义了数据的作用域和生命期。
1.变量的声明
1.1
变量的声明的一般形式:存储类别 数据类型 变量名;数据类型以int为例:
- 自动变量:auto int i;//自动变量是局部变量
- 局部变量:在函数内部定义的变量,局部变量缺省存储类别时就是自动变量
作用域:从定义开始到函数结束。
生命期:从函数调用开始到函数推出为止。
- 外部变量/全局变量:在函数外部定义而没有指出存储类别的变量
定义外部变量:extern int i = 1;或 int i;
- 声明外部变量:extern int i;
- 作用域:从定义开始到到源文件结束。
- 可用extern声明来扩大外部变量作用域:当一个C程序由多个源文件组成时,外部变量i定义在某个源文件中,其它源文件要使用i需在源文件中声明i,extern int i;。静态全局变量只能在被定义的源文件中使用,不能被其它源文件使用。
- 生命期:从定义开始到到程序执行结束为止。
- 用extern声明外部变量来扩大外部变量作用域
- 静态变量:static int i;寄存器变量:rigister int i;
- 静态局部变量
- 作用域:从定义开始到函数结束。
- 生命期:从定义开始到到程序执行结束为止。
- 静态全局变量
- 作用域:从定义开始到到源文件结束。即不能通过extern声明被其它源文件使用。
- 生命期:从定义开始到到程序执行结束为止。
- 静态局部变量
- 寄存器变量:rigister int i;寄存器变量存储在CPU中。
1.2
- 静态分配:将数据存在静态存储区,包括静态变量和外部变量,程序执行结束后才释放变量所占用的内存单元。
- 动态分配:将数据存在动态存储区,包括寄存器变量和局部变量,函数执行结束后就释放变量所占用的内存单元。
2.static的作用
2.1static作用于变量
- 改变作用域(静态全局变量)
- 改变生命期(静态局部变量)
2.2static作用于函数
- 改变函数作用域:被static修饰的函数称为内部函数,只能在其被定义的源文件中使用。没有被static修饰的函数缺省值为extern,为外部函数,可被程序中奇谭源文件使用。
3.C++中的static和unnamed namespace
Unnamed namespace is superior to static keyword, primarily because the keyword static
applies only to the variables declarations and functions, not to the user-defined types.
原文:http://www.cnblogs.com/bukekangli/p/4320223.html
内容总结
以上是互联网集市为您收集整理的C语言中数据的两种属性及static的作用全部内容,希望文章能够帮你解决C语言中数据的两种属性及static的作用所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。