前言
内存
由一系列电子线路单元组成,每个电子线路单元有2种稳定的状态,分别表示二进制的0或1,称之为位(bit)。位是组成内存的最小单位。
内存中的数据单位
- 字节(Byte)。一个字节由8个连续的二进制位组成,每个二进制位有一个编号,其编号顺序按位自右至左为0 ~ 7,也可称为第0位、第1位…第7位。字节是数据存储的最小单位。
- 字(Word)。连续的两个字节称为字。连续的两个字成为双字,连续的两个双字称为4字。
- 字长。中央处理器在单位时间内能一次处理的二进制数的位数叫字长。所以能处理字长为8位数据的CPU通常就叫8位CPU,32位CPU可在同一时间内处理字长为32位的二进制数据。字长是计算机性能的一个重要指标,字长越大计算机处理数据的速度就越快。早期计算机字长一般为8位和16位,目前大多数为32位和64位。
内存的组织形式
一套完整的存储体系结构,以保证数据的完整性和安全性。
- 地址。内存管理时,为了正确地存取信息,对每个字节都赋予的唯一的编号。地址从0开始编号,按照加1递增的顺序编址。在计算机中用二进制表示地址,为了书写方便常用十六进制表示。
- 存储单元的内容。存放在存储器单元中的数据。
根据地址可以存取字节、字、双字、连续的多个字节。
按字节操作时,只要指出该字节的操作地址,就可以实现字节操作。字是由2个字节组成,其存储顺序是低字节内容(第0 ~ 7位为低位字节,也称为低8位)存储在低地址单元,高字节内容(第8 ~ 15位为高位字节,也称为高8位)存储在相邻的高地址单元。
在进行字操作时,规定低字节的地址是该字的地址,实现字的存取操作。
由此可见,同一个地址既可视为字节单元地址,又可视为字单元地址。
- 存储器的容量。存储器字节数的总和。在计算机中,为方便起见,存储器容量以 2^10B = 1024B 为基本单位,称为 1K 字节,表示为 1KB。常用的存储容量的单位有:KB、MB、GB、TB。
- 1KB = 1024B = 2^10B
- 1MB = 1024KB = 2^20B
- 1GB = 1024MB = 2^30B
- 1TB = 1024GB = 2^40B
数据在内存中的存储
存储形式称为机器码。
- 有符号整数的存储
- 无符号整数的存储
- 字符的存储:占一个字节的存储空间,存储的是该字符对应的ASCII码值1。
C语言的符号集
基本字符
- 英文字母
- 数字
- 特殊字符
标识符
对变量名、函数名、标号和其他各种用户定义的对象的命名。
标识符只能是由字母、数字和下划线(_)组成,其第1个字符必须是字母或下划线。
C语言中标识符包括保留字和用户标识符。
-
保留字
由C语言规定的具有特定意义的标识符,包括关键字和特定字。C语言的关键字都用小写字母表示,共有32个。
特定字主要用于编译预处理,以#开头,如include、define、undef、ifdef、ifndef、endif。
-
2.用户标识符
- ANSI C不限制标识符的长度,但它受各种版本的C语言编译系统限制,同时也受到具体机器的限制。
- 在标识符中,大小写是有区别的。
- 标识符是用于标识某个对象的符号,命名时应尽量有其标识对象的含义。
- 用户定义的标识符不应与关键字及特定字相同。
数据类型
常量
整型常量
浮点常量
字符常量
- 直接形式
在单引号内直接书写字符。 - 八进制形式
格式为’\ddd’,其中" \ "是转义符;"ddd"表示一个1 ~ 3位的八进制数,其值代表的是某字符的ASCII值的八进制形式。 - 十六进制形式
格式为’\xhh’,其中" \ "是转义符;''x"是十六进制前缀;"hh"表示一个1 ~ 2位的十六进制数,其值代表的是某字符的ASCII值的十六进制形式。 - 转义字符
一种特殊的字符常量,以反斜线" \ "开头,后跟一个或几个字符。转义字符具有特定的含义,不同于字符原有的意义。
字符串常量
由一对双引号括起的字符序列,可以是零个字符,也可以只有一个字符。
构成字符串的每一个字符都可以使用字符的任意一种形式来表示。
字符串有效字符个数是第一个"\0"之前的字符个数的总和。字符串的有效字符个数也称为字符串长度。
符号常量
在C语言中,可以用一个标识符来表示一个常量,称之为符号常量。符号常量使用之前必须先定义,其一般形式为:
#define 标识符 常量
其中#define 为预处理宏定义命令,其功能是把“标识符”定义为其后的“常量”。符号常量起作用的范围是定义后到程序文件结束。对源程序预处理时将程序中所有出现该标识符的地方均代之以该常量值,习惯上符号常量的标识符用大写字母。
变量
变量的基本知识
在程序的执行过程中值可以发生改变的数据称为变量。
- 变量名
变量的命名符合标识符的规定。一般情况下,C语言中变量名习惯上用小写字母来表示。
变量名是变量在内存中存储空间的抽象,程序中可以通过变量名获取变量的地址。 - 变量占据一定字节的存储空间
- 一个变量在使用前必须有一个确定的值
变量的定义
变量定义的一般形式为:
类型说明符 变量名表列;
类型说明符说明了变量名表列中变量的类型,确定了变量在内存中所占的字节数及其存储方法。程序中使用变量名访问变量所占内存空间中的数据。
定义变量时应注意以下几点。
- 函数内变量的定义应该位于函数体的数据描述部分。
- 各基本数据的类型说明符中,类型标识符有int、float、double、char;类型修饰符有long、short和unsigned。类型修饰符位于类型标识符之前,用空格分隔。
- 变量名表列是所定义变量的变量名,如果同时定义多个同一类型变量,变量名中间用“,”作为分隔符构成变量名表列。
- 类型说明符和变量名表列用空格分隔,变量定义的结束符是分号。
变量的初始化
变量在使用前应该有确定的值。C程序中可有多种方法为变量提供初值。
在对变量进行定义的同时,可以给变量赋初值,这种方法称为初始化。在变量定义中赋初值的一般形式为:
类型说明符 变量名1 = 值1, 变量名2 = 值2 ...;
https://baike.baidu.com/item/ASCII/309296 ↩︎