21天学习C语言-第三天

数据的存储,变量和常量。
程序存在的意义就是数据处理,计算机一般须要将要处理的数据存储起来。存储方式有两种,存储在变量或者常量中。以前提过,变量的值是可变的,常量的值是不可变的。dom

计算机内存

计算机使用随机访问内存(random-access memory,RAM)来存储处理过程当中的数据。RAM中的数据是不稳定的,若是须要,你能够改变所存储的信息。同时,RAM中的数据也不持久,一旦关机,数据就丢失了。学习


计算机内存通常以MB为单位,1MB=1024KB, 1KB=1024B, B为byte的缩写。 byte是计算机数据存储的基础单元。spa


RAM是按照顺序排列的,一个byte接着另外一个。每个byte都有一个惟一的地址来标识,咱们用这个地址来找内存中的某一个byte。这些地址按顺序分配给RAM,从0开始,一直到系统的最大限制,目前还不须要手动操做内存,都是系统自动搞定的。code

变量(Variables)

变量是数据在内存中存储位置的名称,程序经过变量来找到数据的所在位置。blog

变量命名原则

  1. 变量名称能够包含字母,数字,下划线
  2. 变量首位必须是字母,下划线也能够,可是不推荐,不能以数字开头。
  3. C语言是大小写敏感的,name和Name是两个彻底不一样的变量。
  4. 关键字不能做为变量名。

变量命名要见名知意,能够下划线分隔单词,也能够用驼峰命名法,看我的喜爱。下划线可读性高一些,驼峰写代码的时候速度快一些。ip

数值类型变量

C为变量提供了不一样的数值类型,不一样的类型在内存中有不一样的存储要求,在作运算时的效率也不同。选择合适的类型,能有效提升程序的运算效率。具体有如下两种数字类型:
整型(Integer)为没有小数部分的数字,又包括有符号(signed)无符号(unsigned)。有符号包括正数附属和0,无符号则是非负数。
浮点型(Floating-point)为有小数部分的数字。
下图是变量的类型,关键字,长度及取值范围(一直觉得char不是数值类型,这里不太理解)。
clipboard.png内存

变量声明

C语言中,变量在使用以前必须声明,声明变量是告诉编译器变量的名字和类型,有的时候会直接初始化变量的值。若是使用未声明的变量,编译器会报错。变量声明格式以下:
typename variable_name;
typename是前面变量类型的关键字
variable_name是变量的名字
例如:ci

int age; //年龄,整型变量
float salary = 30000.00; //薪水,浮点型变量,初始化为30000.00

typedef关键字

typedef用来给一个已存在的类型关键字从新命名,暂时感受不到有什么用。不过在刚毕业的时候读过一篇文章,如何写一些谁都不能维护的代码,里边常常用这个关键字。看下例子:编译器

typedef int integer;
integer count;

这里把int这个关键字重命名为integer,而后用integer这个关键字声明了变量count。it

变量初始化

前文提过,使用变量以前要先声明,这样编译器才能不报错。同时,使用变量以前也要初始化,不然,变量当前的值多是不肯定。如图,每次输出未赋值的变量,结果都是不同的:

clipboard.png
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.14

const定义常量格式,关键字+类型+常量名=常量;,分号结尾:

const type CONSTANT_NAME = literal;
const float PI = 3.14;

两种定义常量的方式是有区别的,会在后续的学习中逐渐解释。

第三天就明显感受赋值了许多,洗洗睡了。
相关文章
相关标签/搜索