c语言变量的存储类别

C语言对变量的存储类型说明有四种:自动变量(auto)、静态变量(static)、寄存器变量(register)、外部变量(extern)。

自动变量属于动态存储方式。在函数中定义的自动变量,只在该函数内有效;函数被调用时分配存储空间,++调用结束就释放++。

静态存储

静态变量属于静态存储。在程序执行过程中,即使所在函数++调用结束也不释放。++换句话说,在程序执行期间,静态变量始终存在。

定义静态变量但不初始化,则自动赋以0(整型和实型)或'\0'(字符型)++且每次调用它们所在的函数时,不再重新赋初值,只是保留上次调用结束时的值++ 。(只初始化一次,不初始化默认值为0)

当需要保留函数上一次调用结束时的值或者变量只被引用而不改变其值时,才使用静态变量。

寄存器变量

一般情况下,变量的值都是存储在内存中的。为提高执行效率,C语言允许将局部变量的值存放到寄存器中,这种变量就称为寄存器变量。其定义格式为:

register数据类型 变量表;

注意:

(1)只有局部变量才能定义成寄存器变量,即全局变量不行。

(2)允许使用的寄存器数目是有限的,不能定义任意多个寄存器变量。

外部变量

外部变量属于静态存储方式。有时需要用extern来声明外部变量,以扩展本文件

外部变量的作用域。其定义格式为:

extern 数据类型 外部变量表;

相关推荐
Navigator_Z4 小时前
LeetCode //C - 1317. Convert Integer to the Sum of Two No-Zero Integers
c语言·算法·leetcode
冻柠檬飞冰走茶5 小时前
字母移动游戏题解:贪心求最长可保留连续子串(附 C 实现)
c语言·开发语言·数据结构·算法·动态规划
Hhy_11079 小时前
《C++深度解构06》手撕 string —— 从底层内存管理到深浅拷贝彻底吃透
c语言·开发语言·c++·学习·visual studio
曦樂~21 小时前
Cpp面筋
c语言·c++
HUANGZHENXUAN1231 天前
最大子矩阵和:从 O(n⁴) 到 O(n³) 的列压缩 + Kadane
c语言·前端
§ꦿCFོ༉1 天前
嵌入式八股文—C语言入门学习(二)
c语言·学习·嵌入式·编程语言
David猪大卫2 天前
【Linux修炼】环境变量、进程地址空间
linux·c语言·经验分享·笔记·学习·ubuntu·centos
Zwawa2 天前
两根线怎么挂住一堆设备:I2C 协议原理
c语言·单片机·嵌入式
武子康2 天前
h3.c 的两个权重槽,怎样把内存压力换成 SSD 等待
c语言·人工智能·agent
§ꦿCFོ༉3 天前
嵌入式八股—C语言入门学习(一)
c语言·编程语言·嵌入式八股文