一、变量 - 能被改变的量
(一)命名
- 只能由字母(包括大写和小写)、数字和下划线( _ )组成
- 不能以数字开头
- 长度不能超过63个字符
- 变量名中区分大小写的
- 变量名不能使用关键字
- 变量名要起的有意义
(二)分类
- 局部变量
- 全局变量
#include <stdio.h>
int year = 2000; //全局变量 – {}外部定义的
int main()
{
int age = 18; //局部变量 – {}内部定义的
int year = 2023; //局部变量
//打印
printf("year = %d\n", year);
return 0;
}
当局部变量和全局变量同名时,局部变量优先
不建议: 把全局变量和局部变量的名字写成一样的
(三)作用域
作用域(scope)是程序设计概念,通常来说,一段程序代码中所用到的名字并不总是有效/可用的,而限定这个名字的可用性的代码范围就是这个名字的作用域
- 局部变量
- 变量所在的局部范围
- 全局变量
- 整个工程
(四)生命周期
变量的生命周期指的是变量的创建到变量的销毁之间的一个时间段
- 局部变量
- 进入作用域生命周期开始,出作用域生命周期结束
- 全局变量
- 整个程序的生命周期
二、常量 - 不能改变的量
C语言中的常量分为:
- 字面常量
const
修饰的常变量- #define 定义的标识符常量
- 枚举常量
常变量 - 具有常属性(不能被改变的属性),但是本质上还是一个变量
#include <stdio.h>
enum Sex
{
MALE,
FEMALE,
SECRET
};
//括号中的MALE,FEMALE,SECRET是枚举常量,不能改
int main()
{
//字面常量
2000;
3.14;
'A';
"abc";
//const 修饰的常变量
const int age = 18;
age = 20; //无法重新赋值
//#define 定义的标识符常量
#define MAX 100
printf("max = %d\n", MAX);
//枚举常量
printf("%d\n", MALE);
printf("%d\n", FEMALE);
printf("%d\n", SECRET);
//注:枚举常量的默认是从0开始,依次向下递增1
return 0;
}