第二章 数据类型、运算符与表达式
1.关键词
关键词是C语言中预定义的符号,它们已经具有了一定的含义,用户自己定义的任何符号都不能与它们冲突。
C语言所有关键词
auto | break | case | char | const | continue | defa |
do | double | else | enum | extern | float | |
goto | if | int | long | register | return | |
signed | sizeof | static | struct | switch | typedef | |
union | unsigned | void | volatile |
除了关键词以外,C语言中还有一些准关键词,它们也有固定含义,主要用作库函数名和预处理命令。C语言运行它们另作他用,但是为了避免不必要的麻烦,还是不要用它们。
准关键词有:dafine,endif,include,ifdef,ifudef,line,undef;
其余的准关键词均为系统函数名,例如:scanf,printf等。
2.标识符:用户自行定义的符号,用来标识常量、变量、函数、标号等。
C语言规定所有的符号必须先定义或者说明之后才能使用。
ANSI C规定:标识符是由字母或者下划线“_”开头,字母数字的任意组合。
2.1数据类型
在程序设计中,所有在程序中使用的数据都应该属于一种数据类型,不同的数据类型的数据的差异在于:
- 在内存中占据的存储区长短不同;
- 对应不同的取值范围;
- 对应不同的所允许的操作;
整型:用来描述整数
整型可以分为:基本型(int)、短整型(short或者short int)、长整型(long或者long int)和无符号型。无符号型又可以细分为:无符号整型(unsigned或unsigned int)、无符号短整型(unsigned short或unsigned short int)和无符号长整型(unsigned long)。
各种整型数据所占内存大小
数据类型 | 占字节 | 位数 |
int | 2Byte | 16bit |
short | 2Byte | 16bit |
long | 4Byte | 32bit |
unsigned | 2Byte | 16bit |
Unsigned short | 2Byte | 16bit |
Unsigned long | 4Byte | 32bit |
浮点型(实型):用来描述小数
实型也称浮点型。实型常量也称为实数或浮点数。
浮点型只采用十进制。
它有两种形式:十进制小数形式,指数形式(a E n)。
标准C允许浮点数使用后缀。后缀为F(f)即表示该数为浮点数。如:365f=365.
分为两种:单精度(float)和双精度(double).
数据类型 | 占字节 | 位数 |
float | 4Byte | 32bit |
double | 8Byte | 64bit |
字符型:用来描述字符
占内存1Bytye,一般用8位二进制数据标识一个字符,实际上8位二进制数表示该字符的ASCII码值,因此可以把字符型看成一种特殊的整型,它们之间可以混合使用。
字符型常量: 用单引号括起来的一个字符。
2.2常量
常量:在程序运行过程中,其值不发生变化的量
常量可以分为整型常量、浮点型(实型)常量、字符型常量、字符串型常量
- 整型常量
如:5,8,6654等
整型常量就是整常数,可以带正负号。
- 十进制整常数
- 八进制整常数:必须以0开头,即以八进制数的前缀。码数取值为0~7.
- 十六进制整常数:前缀为0X(x),其码取值范围为0~9,A~F或a~f。
可以在数据的末尾用一个字母表示它的类型,如长整型(L或l),无符号型(U或u)。
Eg:123456L
- 浮点型(实型)常量
就是小数,有两种表现形式:十进制形式和指数形式。
除了特殊说明在数据后面加F或f(单精度),不然一般会把浮点型常量处理成双精度型。
- 字符型常量
字符型常量: 用单引号括起来的一个字符,一个字符常量的值就是该字符对应的ASCII码值。
如:‘a’
在C语言中,字符常量有以下特点:
- 字符常量只能用单引号括起来,不能用双引号或者其他括号。
- 字符常量只能是单个字符,不能是字符串。
- 字符可以是字符集中的任意字符。但数字被定义为字符型之后就不能参与数值运算。如‘5’和5是不同的,‘5’不能参与运算。
除了正常形式的字符型常量外,还有一些特殊形式的字符型常量,就是以“\”开头的转义字符,它们具有特殊含义。
常用的转义字符表
字符形式 | 含义 |
\n | 换行 |
\t | 横向跳格 |
\v | 竖向跳格 |
\b | 退格 |
\r | 回车 |
\f | 回车但不换行 |
\\ | 反斜杠\ |
\’ | 单引号 |
\xhh | h表示1-2位十六进制数代表的字符 |
\ddd | d表示1-3位八进制数代表的字符 |
- 字符串常量
字符串常量是用一对双引号括起来的零个、一个或多个字符序列,其中的双引号只起界定作用。如“I am a teacher.”
一个字符型常量在内存中占一个字节的存放空间,字符串常量在内存中所占的存储空间长度等于字符串中所有字符数加1,对一个长度是因为编译程序会自动地在每个字符串的末尾添加一个字符串结束标志‘\0’.
应当注意字符型常量和字符串常量是不同的,如“A”和‘A’是不同的,“A”是一个字符串常量,由‘A’和‘\0’两个字符型常量构成。
- 符号常量:用符号直接代替数字表示常量。
格式
#define 标识符 常量
其中,#define是一条预处理命令(预处理命令都以#开头),称为宏定义命令,其功能是把该标识符定义为其后的常量值。一经定义,以后在程序中所有的出现该标识符的地方均代之以该常量值。
习惯上,符号常量的标识符用大写字母,变量标识符用小写字母。
2.3变量
变量:其值可以改变。一个变量由一个名字来标识,此名字称为该变量的标识符。并且C语言规定所有变量在使用之前都必须加以说明。
- 整型变量
- 整型变量的定义
一般形式:
类型说明符 变量名标识符,变量符标识符,...;
Eg:
Long x,y;
2.整型变量的分类
- 基本型:类型说明符为int,在内存中占4个字节
- 短整型:short int或short。4
- 长整型:long int或long,4
- 无符号型:unsigned
- 实型(浮点型)变量
- 实型数据在内存中的存放形式
实型数据一般占4个字节(32位)的内存空间。
2.实型变量的分类
实型变量分为:单精度、双精度和长双精度。
- 字符变量:用来存储字符常量,即单个字符。
字符变量的类型说明符是char。
格式:
Char a,b;
2.4变量赋初值
一般形式:
类型说明符 变量1=值1,变量2=值2,...;
Eg:int number=5;
2.5各类数值类型数据之间的混合运算
2.6 算术运算符和算术表达式
常见运算符
运算符名称 | 运算符 |
赋值运算符 | = |
算术运算符 | + - * / % |
复合赋值运算符 | += -= /= *= %= |= <<= >>= &= ^= |
自增、自减运算符 | ++ -- |
条件运算符 | ? : |
逗号运算符 | , |
关系运算符 | > >= < <= == != |
逻辑运算符 | && || ! |
位运算符 | >> << ~ | & ^ |
指针运算符 | * & |
求字节运算符 | sizeof |
Ps:%求模——求余数