一.常量与变量
1.变量
变量的介绍
在生活中有些东西的值是可变的有些值是一直保持不变的(例如某件东西的价格,人的身高是可变的),我们把这些可以改变的量叫做变量。
每一个变量必须有一个类型,类型用来存放数据的种类。(如 int,char,double,float,long long等等)。在给每一个变量选择合适的类型是很重要的。int型可以存储整数,但不是所有的整数都可以存储,它是有范围限制的,int类型最大只能存储2147483647的数字,一旦比最大值大就超出了int的范围。int类型只能存储4个字节的数字,1个字节等于8个比特位,那么int类型能存储32个比特位的数字。(数据的存储在这里如果不明白不影响对变量的理解,后期会专门写各种类型的存储方式)。
比起各种类型的存储显然变量的命名尤为重要,变量的命名必须保持这几个原则:1.只能由数字,字母,下划线组成。2.不能以数字开头。3.长度不能超过63个字符。4.变量名区分大小写。5.变量名不能使用关键字。
变量的分类
变量分为局部变量和全局变量
变量的作用域与生命周期
#include<stdio.h>
int main()
{
{
int a = 10;
}
return 0;
}
这里的变量a显然是一个局部变量出了花括号自动销毁。局部变量只是工作在某一范围里面,进入这个范围就创建这个变量,出了这个范围就自动销毁。先对比一下下面代码,第二个代码块a在main函数里面的第一个花括号里面开辟出4个字节的内存,创建出变量a,出了花括号,创建的内存自动销毁由操作系统回收,它的作用域只是在花括号中。
第一例代码说明a在main函数中是一个全局变量,第二个代码说明a出了花括号后创建的变量就自动销毁了,说明a是一个局部的变量。
最后一个代码说明全局变量a可以在整个工程中调用。全局变量还可以跨文件调用。
上述2个代码是在2个源文件中创建的,int a=3333是在test1.c文件中创建的,main函数是test2.c中创建的,代码可以运行成功打印出a的值说明全局变量可以跨文件调用。也说明了全局变量的生命周期是整个工程。
总结:局部变量的生命周期是进入作用域生命周期开始,出作用域生命周期结束。全局变量的生命周期是整个工程。
常量
常量的介绍
生活中不变的值是常量例如性别,血型,圆周率等等。
常量的分类
1.字面常量
3 3.14 100 ‘a’等等不变的值叫字面常量
2.const修饰的常变量
一般来说变量是可以被修改的例如:
变量a的值原来是123,后面修改了a的值为19,从侧面也反映出了变量可修改,值不是不变的。那么我用const修饰变量会发生什么样的结果呢?
用const修饰变量后其值不能改变是不是说明变量a成为了一个常量呢,只有常量的值不能修改,接下来让我们继续看。
我们第8行定义了一个数组(不懂数组没关系,你只需要知道[]里面必须放一个常量不能是变量,例如int arr[],[]里面只能放一个不变的量如1,2,3),加了const后数组定义报错说明[]是一个变量,结合上面2个例子可以得出const修饰的变量只是让变量有了常量的属性(如第一个例子变量的值不能改变),但本质还是一个变量。
3.#define定义的标识符常量
4.枚举常量
文章中的枚举常量只是让你认识它,后期会专门写枚举常量的文章。
生活中有我们可以自定义的东西,如性别可以分为男女,颜色可以分为黄色。蓝色。白色等等。
jacket,pants,shoes是枚举常量clothes的不同取值,同时也是常量(把枚举常量打印出来分别是整数0,1,2等等)不变的量,所以叫枚举常量。