C语言之变量总结

本文详细介绍了变量的分类,包括按数据类型(如整数、浮点、指针等)、存储类型(auto、static和extern)以及作用域(局部变量和全局变量)。重点讲解了如何通过static和extern控制变量可见性和生命周期。
摘要由CSDN通过智能技术生成

变量的分类

一、按数据类型分类

1、整数型
①、char ; unsigned char
②、int ; unsigned int
③、short int ;unsigned int
④、long ;unsigned long
2、浮点型
① float
②double
3、指针
4、结构体
5、联合体
7、枚举型
8、数组

二、按变量存储类型

1、auto (动态存储类型)
动态存储类型变量只能是局部变量,调用相应函数时为该变量开辟内存空间,调用结束后释放该变量的内存空间。需要赋初值,初值不定。

2、static (静态存储类型)
静态变量可以在函数内部定义(必须加static),也可以在函数外部定义。程序执行时就为该变量开辟空间,然后一直占用该内存空间。
static的用法:
①、局部变量加static:函数内的变量可以使用static来防止变量释放,从而保持上次调用函数时的值供下次调用时使用。
②、全局变量加static:函数外部的变量为全局变量,对于该工程的所有文件都可见,使用static可以使某一文件中的外部变量只对该文件可见,从而限制了全局变量的作用域,这样不同的文件可以定义同名的外部变量。

3、extern(外部变量)
该关键字只用于声明,而不用于定义。
全局变量对该工程的所有文件都可见,但文件不可以直接使用外部文件的全局变量,需要使用extern来声明才可以使用。

故:对于全局变量,加static限制全局变量的作用域,加extern声明其外部文件可用。他们是对立的。

三、按作用域

1、局部变量(定义在函数内部的变量)
只允许在定义它的函数内部使用,在函数外的其它任何地方都不可见。
可以与全局变量同名,但调用函数时使用的是局部变量。
需要赋初值。

2、全局变量(定义在函数外部的变量)
不需赋初值,默认为0.

四、对于C51还可以按存储位置定义

data、idata、xdata

总:
1、局部变量定义在函数内部,默认为auto型,可以使用static定义为静态变量。
2、全局变量定义在函数外部,默认为对所有文件可见,可使用static来限制作用域(仅该文件使用),和使用extern来外部声明(可外部使用)。
函数也可以加static来限制作用范围

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值