变量的存储类型
储存类型说明符 | 存储类型 | 说明 |
auto | 自动存储 | 只能用于块作用域的变量声明中,局部变量默认情况下归为自动存储类型。 |
register | 寄存器存储 | 只用于块作用域的变量,请求速度快。对于循环次数较多的循环控制变量及循环体内反复使用的变量均可定义为寄存器变量。 |
static | 静态存储 | 载入程序时创建对象,程序结束时对象消失。 |
extern | 外部变量 | 说明符表示声明的变量定义在别处。作用域是整个程序,生存期贯穿应用程序的开始和结束。 |
静态存储
文件1
#include <stdio.h>
#include <stdlib.h>
// 计算某个函数被调用次数
int main()
{
int count = 0;
counter();
counter();
counter();
count = counter();
// 打印调用次数
printf("count = %d",count);
return 0;
}
在项目下面创建源文件:文件 -> 新建 -> 文件 -> C/C++source -> C -> 选择保存的路径 -> 确定保存在对应的项目路径下面 -> 输入文件名.c结尾 -> 保存
打开创建的文件,即可编译代码
/*
用来存放计算函数调用次数的函数原型及实现
*/
// 函数原型
int counter();
// 函数定义
int counter()
{
//加了static——静态存储每一次++,count就不会清0,保存上一次调用的结果
static int count = 0; // 加了static第一次执行分配空间,以后不再分配空间了,本句只会执行一次
count++;
return count;
}
文件创建成功过后的窗口样子
如上:实现了两个文件链接在一起
当需要使用的变量是另一个文件里面定义的,则在当前文件需要引入外部变量 extern。以下两个截图为同一个项目下的不同的两个文件:
小结
变量的作用域
全局、局部
变量的生存期
变量的存储方式:动态存储(自动、寄存器)、静态存储(静态和外部)
由变量的存储方式不同而产生的特性称为变量的生存期(变量的存在时间)
基本类型的静态变量系统默认赋初值为0
静态变量的生存期为整个源程序,作用域只是定义它的文件
函数被调用时,其中的局部静态变量的值保留前次被调用的结果
❥(^_-) 我的学习之路任重道远,咱们下期见~~~