变量属性小结

8 篇文章 0 订阅

2013年9月27日16:09:56

变量属性小结:

1. 一个变量除了数据类型外,还有三种属性:作用域存储期存储类别


2. 作用域(空间角度)

作用域:每一个变量都有其有效的作用范围,这就是变量的作用域。

               在作用域以外是不能访问这些变量的。

作用域:局部变量(1在函数内部定义的,或形式参数---有效范围为函数内部,即函数作用域)

                                 (2 在复合语句中定义的,有效范围为复合语句内部,即块作用域

                                (3 函数原型声明中,函数原型作用域

               全局变量(在函数外定义的变量,有效范围从定义变量的位置开始到本源文件结束,即文件作用域


3. 存储期(生命期,存在的时间)

存储方法分两大类:

静态存储:是在整个程序运行期间都存在

                   全局变量;静态全局变量;静态局部变量

动态存储:是在调用函数时临时分配存储单元

                   自动变量;寄存器变量;形式参数;


4. 存储类别

存储类别:数据在内存中存储的方法。

4种:自动的(auto),静态的(static),寄存器的(register),外部的(extern


5. 按照变量值存放的位置来分:

内存中静态存储区:全局变量;静态全局变量;静态局部变量

内存中动态存储区:自动变量;形式参数;

CPU中的寄存器:寄存器变量


6. 变量的类型总结

自动变量:即局部自动变量,局部有效(函数内,复合语句内,函数原型声明中),动态存储区

静态局部变量static+自动变量,局部有效(同上),静态存储区

                          (虽然静态局部变量在函数调用结束后仍然存在,但其他函数是不能引用它的)

寄存器变量register+自动变量

extern声明全局变量:(extern只是用来声明已经定义的全局变量,而不能用于变量的定义)

                                          作用:用extern声明全局变量,来扩展全局变量的作用域

                                                     在一个文件内用extern声明,扩展全局变量的作用域到声明处开始(一般是不这样处理的,一般都是把全局变量的定义在引用它的所有的函数之前)。

                                                     在多个文件中用extern声明,从程序连接时从其他文件找已经定义的全局变量。

static声明的全局变量:(与上一种情况中多文件用extern声明相对立)

                                            作用:希望全局变量只限于被本文件引用,而不能被其他文件引用(有利于工程,每个人独立的设计,互不干扰,模块化)。

 

7. 内部函数和外部函数

内部函数:如果一个函数只能被本文件中其他函数所调用,它称之为内部函数。

          static 类型标识符 函数名(形参表)  static int funcint a, int b

外部函数:如果在函数首部的最左端冠以关键字extern,则表示此函数是外部函数,可供其它函数调用。

(如果定义函数时省略extern,则默认为外部函数)

(在需要调用此函数的文件中,用extern声明所用的函数是外部函数)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值