变量作用域

 

l  全局变量的作用域:从定义的位置开始到本文件的结束。C语言规定,如果全局变量和局部变量同名,则在二者的作用域重叠的区间局部变量有效,全局变量不起作用。

l  1.由于全局变量属于程序中的所有函数,因此在程序执行过程中,一直占用存储空间,即使正在执行的函数根本不用这些全局变量,全局变量也要占用存储空间

2.在某函数中若用到了全局变量,则所有调用该函数的住掉函数都要使用这些全局变量,从而降低了函数的通用性

l  变量和函数的基本属性:

1.       数据类型:如整型,实型和字符型

2.       存储类型:制动类型(auto)、静态类型(static)、寄存器类型(register)和外部类型(extern

l  动态变量(auto)。对于局部变量,若不加以任何说明,默认为动态变量。动态变量的赋初值是在调用函数时进行的,在函数执行结束时,释放其存储单元,变量的数据丢失。再次调用函数的时候,又重新为动态变量赋初值,若没有为动态变量赋初值,则动态变量的初值是随机的。

l  局部静态变量(static)赋初值是在编译的时候进行的,若没有为静态变量赋初值的语句,则自动初始化为0.静态变量的值是在函数调用结束时仍保留,在下次调用该函数的时候,静态变量的值是上次调用结束时的值,而不再重新赋初值。

l  外部变量(extern)扩展全局变量的作用域。

1.       在全局变量的定义点之前的函数要使用该变量,则要先用extern声明外部变量。如:

extern d;//声明外部变量d

d+=a;//d定义之前使用该全局变量

int d=5;//定义全局变量d

2.       一个C语言程序可以由一个或者多个源文件组成。对于多文件的C程序,若一个文件中的程序要使用另外一个文件中的全局变量,就要用extern声明外部变量,这样就可以将全局变量的作用域扩展到其他文件。

l  静态外部变量:用static声明的全局变量。这种变量只能被本文件中的函数使用。其他文件即使使用extern声明该变量也无法使用。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值