简介
任何应用程序都需要处理数据,并需要一些地方来临时存储这些数据。这个存储数据的“地方”被称为内存。内存中不同的位置可以通过唯一的地址来识别。早期的编程语言要求程序员以地址的形式跟踪每一个内存位置以及保存在该位置的值。程序员使用该地址来访问或者改变内存的内容。随着变成语言的发展,通过引入变量这个概念得以简化对内存的访问。
2.1变量
一个应用程序可能会处理多项数据。在这种情况下,应用出呢工序要为每一项数据分配内存。在分配内存时,需要考虑下列两个元素:
1.需要分配多少内存?
2.记下数据被存储在哪个内存地址。
早期,程序员需要使用机器语言(既1和0)来编写他们的程序。如果程序员想临时存储一个值,就需要在计算机内存中分配一个精确的位置来存储该数据。这个存储位置是一个明确的数字或内存地址。
现代编程语言允许使用被称为变量的符号名称来引用用来存储特定值的内存位置。
数据类型句顶了要分配内存大小。分配给变量的名称有助于根据要求和需要重用这些数据。
我们知道在公式中如何使用字母来表示一个数。例如,矩形的面积可以表示为:
Area=A=Length*Breadth=L*B
利息表示为:
Interest=I=Principal*Time*Rate/100=P*T*R/100
字母A、L、B、I、P、T、R都是变量,是各种值的简短表示法。
思考下面的示例:
该示例显示5名学生的分数总和。可以通过下面的指令来显示这个总和:
Display the sum of 24,56,72,36 and 82(显示24、56、72、36和82的总和)
一旦显示出该总和,它就从计算机的内存中消失了。若要计算这些分数的平均值,则必须重新计算这个总和。
一个更好的方法是将这个结果存储在计算机的内存中,然后可以在需要时重用该值。
sum=24+56+72+36+82
此处,sum是一个用来存放这五个数字总和的变量。当必须计算平均值时,实现方法如下:
Avg=sum/5
在C语言中,所有的变量在使用之前必须先声明。
2.2 常量
对于变量而言,其中存储的值在整个生命周期里不必相同。一个变量的生命周期从它被声明时开始,一直延续到超出其作用域时结束。在变量作用域以内的语句都可以访问这个变量的值。他们甚至可以更改变量的值。有时会要求某些项目的值保持不变。
常量就是一个保持不变的值。例如,5是一个常量,它的算术值始终是5,而且不能被任何人更改。类似的,“Black”是一个专门表示黑色的常量。5被称为数字常量,“Black”被称为字符串常量。
2.3 标识符
变量、函数、标签和其他各种用户定义的对象名称被称为标识符。这些标识符可以包含一个或多个字符。表示副的第一个字符必须是字母或下划线(_)。后面的字符可以是字母、数字或者下划线。
C语言中的标识符区分大小写。
2.3.1标识符的命名规则
各种编程语言的标识符命名规则是不一样的。然后,有一些典型的约定。
2.4数据类型
数字
√整数
例如:10或1654789123
√实数
例如:15.22或654.654
√正数
√负数
字符串
例如:John
逻辑值
例如:Y或N
由于存储在变量中的数据类型不同,因此所需的内存空间大小也不相同。
分配给变量的内存空间大小取决于它所纯出的数据的类型。
要为特定的一片数据分配内存,必须声明一个特定数据类型的变量。
声明变量意味着给变量分配一些内存空间。以后将通过变量来引用这部分内存空间。操作系统分配的内存空间大小取决于将要存储到这个变量中的数据的类型。因此,数据类型描述了将要存放到变量中的数据的种类。
声明变量的通用形式是:
数据类型变量名
编程工具通常所使用的数据类型可以划分为两类:
1.数字数据类型-存放数值
2.字符数据类型-存放描述性信息
这些数据类型在不同的编程语言中可以有不同的名称。无论哪种情况,存储的数据是相同的。唯一的区别是,在某工具中使用的变量必须声明为该工具所支持的数据类型的名称。
C语言有五种基本数据类型。其他所有的数据类型都是基于这些数据类型派生的。这五种基本数据类型是:
√int表示整数,通常代表了整数的原始大小。
√float和double用于浮点数。float占4个字节,可以存放六位精度的数字,而double占八个字节,可以存放十位精度的数字。
√char类型占一个字节长度,可以存放一个字符。
√void通常用于声明一个返回空值的函数。
注意:浮点数据用于表示要求小数点精度的值。
2.4.1 基本数据类型和派生数据类型
前面讨论的四种数据类型(char、int、float 和double)在计算机的内存中用于实际的数据表示。可以修改这些数据类型以便更好地适应不同的情况。这样产生的数据类型被称为这些基本数据类型的派生数据类型。
我们使用修饰符来改变基本数据类型以适应不同的情况。除了void类型,其他所有类型前面都可以加上一些修饰符。C语言使用的修饰符有signed,unsigned,long和short。所有这些都可以应用于字符和证书数据类型。
signed和unsigned类型。
整数声明默认为有符号数字。signed最重要的用途是修改char数据类型,char类型默认为无符号值。
unsigned类型指定变量只能取正值。这个修饰副可以与int和float数据类型一起使用。unsigned在某些情况下可以应用于浮点数据类型,但是这样会降低代码的可移植性。
在int类型前面加上unsigned前缀,正数的取值范围将是原来的两倍。
当要求某个整数的长度比正常长度更长或者更短时,会需要使用long和short。short修饰符适用于不必像正常整数长度那么长的数据类型,long修饰符适用于需要比正常整数长度更长的数据类型。
数据的类型极其范围
类型 近似大小(位) 最小范围
Char 8 -128到127
Unsigned 8 0到255
Signed char 8 -128到127
Int 16 -32,768到32,767
Unsigned int 16 0到65,535
Signed int 16 与int相同
Short int 16 与int相同
Unsigned shot int 8 0到65,535
Signed short int 8 与short int相同
Long int 32 -2,147,483,648到2,147,483,647
Signed long int 32 0到4,294,967,295
Unsigned long int 32 0到4,294,967,295
Float 32 六位精度
Double 64 十位精度
Long double 128 十位精度
2.5算术运算符
算术运算符用语执行数字运算。它们可分为两类:一元和二元算术运算符。
二元运算符
C语言中二元运算符的操作与其他语言中的操作相同。运算符+、-、*和/可以应用到几乎所有的C语言所允许的内置数据类型。模运算符(%)计算一个整数除法的余数。
一元运算符
一元运算符有一元减(-)、递增运算符(++)和递减运算符(--)。
递增和递减运算符
C语言包括两个很有用但通常在其他的计算机语言中找不到的运算符,他们是递增运算符(++)和递减运算符(--)。运算符++对操作数加1,而运算符--对操作数减1。
在表达式中使用运算符时,其前置和后置的差别很有用。当运算符位于操作书的前面时,C语言在使用操作数的值之前先执行递增或者递减运算。这称为前置。如果运算符位于操作数的后面,则先使用操作数的值,然后再执行递增或递减运算。这称为后置。
总结
√一个应用程序经常需要处理数据;它需要一些地方来临时存储数据。这个存储数据的“地方”被称为内存。
√现代编程语言允许使用被称为变量的符号名称来引用存储特定值的内存位置。
√对一个程序可以使用的内存位置的数量没有限制。
√常量就是不会发生改变的值。
√变量、函数、标签和其他各种用户定义的对象的名称被称为标识符。
√所有的语言都保留了一些单词供其内部使用。他们被称为关键字。
√C语言中的主要数据类型有字符类型、整数类型、浮点类型、双精度浮点类型和void类型。
√可以使用修饰符来改变基本数据类型,以便适应各种情况。unsigned,short和long是C语言中可用的三种修饰符。
√C语言支持两种类型的算术运算符:一元和二元。
√递增(++)和递减(--)是一元运算符,他们只能对数值变量进行操作。
√二元算术运算有+-*/%,他们只能对数值常量、变量或者表达式进行操作。
√模运算符%只能对整数进行操作,结果是整数除法后的余数。