在我们的日常生活中,有很多的值是可变的,比如年龄、身高、体重;但同时又有很多的值是不可变的,比如血型、身份证号;那在C语言中,根据可变不可变,分为了变量和常量。
变量
定义变量的方法
我们定义变量需要的先确定好这个变量的数据类型,比如我们要定义年龄,年龄是个整型,可以用short、int、long,但是人的年龄最多也就一百多,int、long的范围很大,用来表达我们的年龄就有点浪费,所以我们就可以用short;数据类型定下来,就是变量名,年龄英文是age,那我们就可以用age当这个变量名,我们年龄是18,那这个变量定义出来就可以是
short age=18;
变量的命名
变量名只能由字母(包括大写和小写)、数字和下划线( _ )组成, 不能以数字开头,并且长度不能超过63 个字符, 有一点需要注意,变量名中是区分大小写的,而且不能使用关键字当变量名,关键字本身就是C语言提供给我们的,我们让他们当变量名,到时候到使用这个关键字的时候就会出现矛盾。
变量的分类
全局变量
对于全局变量就是整个工程都能使用的变量,它定义在函数体({})的外面,可以在任何地方使用。
局部变量
局部变量就是定义在函数体({})里面的变量,它只能在它定义的大括号内使用,如果全局变量和局部变量的变量名一样,是优先使用局部变量的。
变量的生命周期和作用域
作用域
作用域是程序设计概念,指的是该变量可用的范围,局部变量的作用域就是它所处的函数体内,全局变量的作用域就是整个工程。
生命周期
生命周期指变量从创建到销毁的一个时间段,局部变量的生命周期从进入作用域开始,到出作用域结束,而全局变量的生命周期就是工程本身。
常量
字面常量
字面常量就是字面意义上的常量,比如8、3.14就是一个字面常量。
const修饰的常变量
const是C语言提供给我们的一个关键字,当我们在变量前面加上const时,如:
const int age=14;
这时候我们就不能去通过下面这样进行修改:
age=19;
但是,虽然选择age具有了常属性,但是它在不支持C99标准的编译器下不能作为数组内的元素个数去使用,像:
char ch[age]={0};
这样在不支持C99标准的编译器下面是个错误的做法。
#define定义的标识符常量
#define可以将一个标识符赋一个常量值,比如:
#define max 100
这样,在使用100的时候就可以用max来代替,比如现在有个数组里面有100个元素,就可以这样:
int arr[max]={0);
枚举常量
在我们生活中,有很多东西是不变并且是和很多东西在一起出现,这个时候我们就可以使用枚举常量(enum),像三原色:
enum Color { red, blue, yellow, };
就可以这样去写。