C语言复习笔记(局部变量和全局变量的存储类别)

本文介绍了C语言中局部变量的三种存储类别:自动(auto)、寄存器(register)和静态(static)。自动类型是默认类型,其变量在函数调用时创建并销毁。寄存器类型用于提升频繁访问变量的效率,但实际是否存储在寄存器由编译器决定。静态类型则使得变量在程序运行期间保持其值,即使函数调用结束。
摘要由CSDN通过智能技术生成

局部变量的存储类别

一般来说,内存中供用户使用的存储空间分为三部分,即:
(1)程序区:用于存放程序。
(2)静态存储区:存放在这个区域的变量,在程序开始运行时就分配固定的存储单元,直到程序运行结束后才释放所占据的存储单元。因此把存储在该区域的变量称为静态存储变量,例如全局变量、静态局部变量等。
(3)动态存储区:存放在这个区域的变量,在函数被调用的执行时才分配储存单元,一旦函数调用结束后立即释放所占的存储单元。因此把存储在该区域的变量称为动态存储变量,例如函数的形参、自动型的局部变量、函数调用时的现场保护和返回地址等。

在C语言中变量定义的一般形式应为:

存储类型 数据类型 变量名表

存储类型有:

  1. 自动类型(auto)
  2. 寄存器类型(register)
  3. 静态类型(static)

1、自动类型(auto)

默认在C语言中如果不做存储类型声明,则默认为自动类型。

auto int x,y;

等价于

int x,y;

2、寄存器类型(register)
使用关键字register来定义寄存器类型,这类的变量的值保持在CPU的一个寄存器中,如果这个变量访问的比较频繁,可以使用此变量,因为其访问的速度更快。

register int x,y;

3、静态类型(static)
用关键字static来定义的局部变量为静态局部变量。静态局部变量的值存储在静态存储区中,在程序开始前分配固定的存储单元,直到程序运行结束后才释放所占的存储单元,因此静态类型具有继承性,即在下一次调用时就是上次调用结束时的值。

static int f = 1;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

会飞的CR7

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值