数据的存储,变量和常量。程序存在的意义就是数据处理,计算机通常需要将要处理的数据存储起来。存储方式有两种,存储在变量或者常量中。之前提过,变量的值是可变的,常量的值是不可变的。计算机内存计算机使用随机访问内存(random-access memory,RAM)来存储处理过程中的数据。RAM中的数据是不稳定的,如果需要,你可以改变所存储的信息。同时,RAM中的数据也不持久,一旦关机,数据就丢失了。计算机内存一般以MB为单位,1MB=1024KB, 1KB=1024B, B为byte的缩写。 byte是计算机数据存储的基础单元。RAM是按照顺序排列的,一个byte接着另一个。每一个byte都有一个唯一的地址来标识,我们用这个地址来找内存中的某一个byte。这些地址按顺序分配给RAM,从0开始,一直到系统的最大限制,目前还不需要手动操作内存,都是系统自动搞定的。变量(Variables)变量是数据在内存中存储位置的名称,程序通过变量来找到数据的所在位置。变量命名原则变量名称可以包含字母,数字,下划线变量首位必须是字母,下划线也可以,但是不推荐,不能以数字开头。C语言是大小写敏感的,name和Name是两个完全不同的变量。关键字不能作为变量名。变量命名要见名知意,可以下划线分隔单词,也可以用驼峰命名法,看个人喜好。下划线可读性高一些,驼峰写代码的时候速度快一些。数值类型变量C为变量提供了不同的数值类型,不同的类型在内存中有不同的存储要求,在做运算时的效率也不一样。选择合适的类型,能有效提高程序的运算效率。具体有以下两种数字类型:整型(Integer)为没有小数部分的数字,又包括有符号(signed)和无符号(unsigned)。有符号包括正数附属和0,无符号则是非负数。浮点型(Floating-point)为有小数部分的数字。下图是变量的类型,关键字,长度及取值范围(一直以为char不是数值类型,这里不太理解)。变量声明C语言中,变量在使用之前必须声明,声明变量是告诉编译器变量的名字和类型,有的时候会直接初始化变量的值。如果使用未声明的变量,编译器会报错。变量声明格式如下:typename variable_name;typename是前面变量类型的关键字variable_name是变量的名字例如:int age; //年龄,整型变量float salary = 30000.00; //薪水,浮点型变量,初始化为30000.00typedef关键字typedef用来给一个已存在的类型关键字重新命名,暂时感觉不到有什么用。不过在刚毕业的时候读过一篇文章,如何写一些谁都不能维护的代码,里边经常用这个关键字。看下例子:typedef int integer;integer count;这里把int这个关键字重命名为integer,然后用integer这个关键字声明了变量count。变量初始化前文提过,使用变量之前要先声明,这样编译器才能不报错。同时,使用变量之前也要初始化,否则,变量当前的值可能是不确定。如图,每次输出未赋值的变量,结果都是不一样的:C中用=表示赋值操作,如:int count;count = 18;声明整型变量count,之后给count赋值18.常量(Constants)常量和变量一样,都是用来存储数据的,不同的是,常量中存储的数据在程序执行过程中是不能改变的。常量分为字面常量(Literal Constants)和符号常量(Symbolic Constants)。字面常量字面常量是在需要的地方直接写在代码里的,没有什么特殊的深意。例如:int count = 20;float tax_rate = 0.28;这里的20和0.28都是字面常量,在需要的地方直接使用就可以了。符号常量符号常量是把一个字符常量用一个名称展现(不太好表达)出来,简单来说调用的时候用名称就行了。经典例子:float circumference = 3.14 * (2 * radius); float area = 3.14 * (radius)(radius);这里我们计算了圆的周长和面积,同时都用到了3.14这个常量,如果我们要继续计算其他用到的面积,那么就需要一直写3.14这个常量了。这时候符号常量就有用了,我们把3.14这个数字定义为符号常量PI。之后的代码就可以简化了:float circumference = PI * (2 * radius); float area = PI * (radius)(radius);有人说这其实没有区别呀,每个地方写PI和每个地方写3.14差别不大。差别并不在意写代码时是否多按了几个键,试想下,如果这时候要求结果精确一些,需要把3.14换成3.1415926的时候,麻烦的事就来了。如果定义了常量PI,那么我们直接在代码里把PI的值改为3.1415926,一键搞定了全部的3.14。定义符号常量常量名习惯上都要大写,这样容易和其他变量区分开来。定义符号常量有两种方式,#define和const:#define定义常量格式如下,关键字+常量名+常量,不需要以分号结尾:#define CONSTANT_NAME literal#define PI 3.14const定义常量格式,关键字+类型+常量名=常量;,分号结尾:const type CONSTANT_NAME = literal;const float PI = 3.14;两种定义常量的方式是有区别的,会在后续的学习中逐渐解释。第三天就明显感觉赋值了许多,洗洗睡了。