1. c语言的数据类型
2. 常量与变量
1、 常量 :在程序运行过程中,其值不能被改变的量称为常量
常量可以区分为不同的类型,如 :整型常量、实型常量、字符常量
用一个标识符代表一个常量的符号,成为符号常量。符号常量的值在其作用域内不能被改变,也不能在被赋值。
使用符号常量的好处
1、含义清楚。
2、在需要改变一个常量时能做到“一改全改”。
2 、 变量:变量代表内存中具有特定属性的一个存储单元,它用来存放数据,也就是变量的值,在程序运行期间,这些值是可以被改变的。
在C语言中用来对变量、符号常量、函数、数组、类型等数据对象命名的有效字符序列统称为标识符。
语言规定标识符只能由字母、数字和下划线3种字符组成,且第一个字符必须为字母或下划线。下面列出的是合法的标识符,可以作为变量名: sum、_total等;
在C语言中,要求对所有用到的变量作强制定义,也就是“先定义,后使用”,这样做的目的如下:
(1)凡未被事先定义的,系统不把它认作变量名,这就能保证程序中变量名使用得正确。
(2)每一个变量被指定为一个确定类型,在编译时就能为其分配相应的存储单元。
(3)指定每一变量属于一个类型,这就便于在编译时据此检查在程序中要求对该变量进行的运算是否合法。
3. 整形数据
1、整型常量
整型常量即整常数。整常数可以用以下三种形式表示:
(1)、十进制整数
(2)、八进制整数,以0开头的数是八进制数,如:0123、-011等。
八进制数与二进制数之间的转换
八进制数 | 二进制数 | 八进制数 | 二进制数 |
0 | 000 | 4 | 100 |
1 | 001 | 5 | 101 |
2 | 010 | 6 | 110 |
3 | 011 | 7 | 111 |
(3)、十六进制数,以0x开头的数是十六进制数,如:0xC9、0x56等。
十六进制数与二进制数之间的转换
十六进制数 | 二进制数 | 十六进制数 | 二进制数 | 十六进制数 | 二进制数 | 十六进制数 | 二进制数 |
0 | 0000 | 4 | 0100 | 8 | 1000 | C | 1100 |
1 | 0001 | 5 | 0101 | 9 | 1001 | D | 1101 |
2 | 0010 | 6 | 0110 | A | 1010 | E | 1110 |
3 | 0011 | 7 | 0111 | B | 1011 | F | 1111 |
2、整型变量
1.整形数据在内存中的存放形式
数据在内存中是以二进制的形式存放的。
数据在内存中是以十六进制数进行存储的,如果是正的十进制数,先转换成二进制数,再转换成十六进制进行存储,如果是负的十进制数,先求绝对值,将该数的绝对值的二进制形式,按位取反再加一,求出补码,再转换成十六进制数进行存储。
小端存储:低字节放前,高字节放后。
大端存储:高字节放前,低字节放后。
2.整型变量的分类
类型 | 所占字节数 | 取值范围 |
short int | 2 | -2^15~2^15-1 |
unsigned short int | 2 | 0~2^16-1 |
int | 4 | -2^31~2^31-1 |
unsigned int | 4 | 0~2^32-1 |
long int | 8 | -2^63~2^63-1 |
unsigned long int | 8 | 0~2^64-1 |
long long int | 8 | -2^63~2^63-1 |
unsigned long long int | 8 | 0~2^64-1 |
整形溢出:是指当数值超过其数据类型所能表示的最大值或最小值时,导致无法正确表示或计算该数值的现象。
4.浮点型数据
1、浮点型常量的表示方法
(1)十进制小数形式。它由数字和小数点组成(注意必须有小数点)。
(2)指数形式。如123e3或123E3都代表123X10。但注意字母e(或E)之前必须有数字,且e后面的指数必须为整数。
2、浮点型变量
1.浮点型数据在内存中的存放形式
浮点型数据一般在内存中占4个字节(32位)。与整型数据的存储方式不同,浮点型数据是按照指数形式存储的。
数符(1bit) | 阶码(8bit) | 尾码(23bit) |
2.浮点型变量的分类
类型 | 所占字节数 | 取值范围 |
float | 4 | -2^31~2^31-1 |
double | 8 | -2^63~2^63-1 |
long double | 16 | -2^127~2^127-1 |
5.字符型数据
1.字符常量
C语言的字符常量是用单撇号括起来的一个字符。如'a'、x'等。
2.字符变量
字符型变量用来存放字符常量,它只能放一个字符,不要以为在一个字符变量中可以放一个字符串(包括若干字符)。
字符型变量的存储:将一个字符常量放到一个字符变量中,实际上并不是把该字符本身放到内存单元中去,而是将该字符的相应的ASCII代码放到存储单元中。字符型数据和整型数据之间可以通用。
转义字符
练习
大小写字母的转换
li