第一节 数据类型
第二节 常量
一、整型常量
整型常量(正整数、负整数、0)
C语言中,整型常量有三种书写形式:①八进制整型常量,必须以0开头,由数字0~7组成的数字串②十进制整型常量,没有前缀,由数字0~9组成的数字串③十六进制整型常量,必须以0X或0x开头,由数字0~9、a~f、A~F组成的字符串
正整数前面的加号“+”可以省略
整型常量在16为PC中,一般占用内存的2字节。值域为-~(-1),即-32768~32767。
整型常量分为基本整型、短整型、长整型(数值后面L或l,占用内存的4字节。值域为-~(-1),即-2147483648~2147483647),又分为八进制、十进制和十六进制三种书写形式。
二、实型常量
实型常量又称为浮点型常量或实数,只使用十进制。C语言中,两种书写形式:①十进制小数形式,例,0.123、123.、-.123②指数形式(用E或e表示)aEb或aeb,,例,3.45E-2(0.0345)、.52378e4(5237.8)
实型常量在16为PC中,一般占用内存的4字节,值域为-~,有效数字是7位。
三、字符常量
字符常量包括普通的字符常量(一对单引号括起来 ' ')和转义常量(反斜杠 \ 开头),占用内存的1字节。
转义字符 | 含义 | 转义字符 | 含义 |
---|---|---|---|
\n | 回车换行 | \t | 横向跳到下一个制表位置 |
\v | 垂直制表 | \b | 左退一格 |
\r | 回车 | \f | 换页 |
\0 | 空字符 | \\ | 反斜杠 |
\' | 单引号 | \" | 双引号 |
\ddd | 1~3位八进制数所代表的字符,例如'\103'代表字符'C' | \xhh 或 \Xhh | 1~2位十六进制数所代表的字符,例如'x46'代表字符'F' |
C语言中,空字符用转义字符“\0”表示,其值为0;空格符号是ASCII字符集中的一个可显示字符,其ASCII值是32,在屏幕上显示为空格。
四、字符串常量
字符串常量又称为“字符串”。编译时自动在字符串的末尾处加一个转义字符 '\0'作为字符串的结束标志,长度为n个字符的字符串占用n+1字节。
字符常量 | 字符串常量 | |
---|---|---|
定界符不同 | 单引号 | 双引号 |
长度不同 | 固定长度为1 | 可以是0,也可以是某个整数 |
存储要求不同 | 存储的是ASCII码值,占用内存1字节 | 除了要存储有效字符外,还要存储一个字符串结束标志'\0' |
五、符号常量
#define 符号常量 常量
其中,常量可以是任意类型。#define是一个编译预处理命令,成为宏定义命令。
【例3-1】 定义符号常量的例子
#define PI 3.14159 /*定义符号常量PI,其值等于实型常量3.14159*/
#define N 10 /*定义符号常量N,其值等于整型常量10*/
#define M 'm' /*定义符号常量M,其值等于字符常量'm'*/
使用符号常量的优势在于:①提高程序的可读性。②便于程序修改。
第三节 变量
变量具有三种属性,①变量名 ②变量值 (在程序运行中变量的值存在内存,并通过变量名来引用变量)③变量类型(“&变量名”表示变量的地址)
一、变量的数据类型
1、整型变量
①基本整型,类型关键字为int,占用内存2字节(32位编译器占4字节)
②短整型,类型关键字为short [int],占用内存2字节
③长整型,类型关键字为long [int],占用内存4字节
④无符号基本整型(unsigned [int])
⑤无符号短整型(unsigned short)
⑥无符号长整型(unsigned long)
2、实型变量
①单精度实型,类型关键字为float,占用内存4字节,保留6~7位有效数字
②双精度实型,类型关键字为double,占用内存8字节,保留15~16位有效数字
3、字符型变量
类型关键字为char,占用内存1字节,存放的是ASCII码值
数据类型 | 数据类型符 | 占用字节数/字节 | 数值范围 |
---|---|---|---|
基本整型 | int | 2(或 4) | 同短整型(或长整型) |
短整型 | short [int] | 2 | -32769~32767(-~(-1)) |
长整型 | long [int] | 4 | -2 147 483 648~2 147 483 647(-~(-1)) |
无符号基本整型 | unsigned [int] | 2(或 4) | 同无符号短整型(或无符号长整型) |
无符号短整型 | unsigned short | 2 | 0~65535(0~-1) |
无符号长整型 | unsigned long | 4 | 0~4 294 967 295(0~-1) |
单精度实型 | float | 4 | ~ (保留7位有效数字) |
双精度实型 | double | 8 | ~ (保留15位有效数字) |
字符型 | char | 1 | -128`127 |
二、变量的定义和初始化
1、变量的定义
C语言规定,任何变量必须先定义后使用。
数据类型符 变量名1[,变量名2,...];
【例3-2】定义有符号整型变量的例子。
int radius, area;
short m,n;
long l1,l2;
【例3-3】定义无符号整型变量的例子。
unsigned i,j,k;
unsigned int x,y;
unsigned short s1,s2;
unsigned long r;
【例3-4】定义实型变量的例子。
float radius, area;
double f1, f2;
【例3-5】定义字符型变量的例子。
char ch1, ch2;
2、变量的初始化
数据类型符 变量名1 = 初值1[,变量名2[=初值2],...];
【例3-6】有符号整型变量初始化的例子。
int redius =2, area;
short m=1, n=2;
long l1=123L,l2;
【例3-7】无符号整型变量初始化的例子。
unsigned i=1,j,k;
unsigned int x,y=0;
unsigned short s1=1,s2;
unsigned long r=1000;
【例3-8】实型变量初始化的例子。
float redius=2.5,area=0.0;
double f1=1.234,f2=5.6E2;
【例3-9】字符型变量初始化的例子。
char ch1='Y',ch2='N';
三、有名变量的定义
C语言中,如果定义了变量并赋予初值,但不希望在程序中对其进行修改,则可以将该变量定义为有名常量。
const 数据类型符 变量名1 = 初值1[,变量名2=初值2,...];
【例3-10】有名常量初始化的例子。
const int j=1,k=2;
const float f1=3.5,f2=6.8;
const char ch1='Y',char2='N';
第四节 运算符和表达式
1、运算符分类
基本运算符 | 算术运算符 | +(加)、-(减)、*、/、%、+(取正)、-(取负) |
---|---|---|
自增、自减运算符 | ++、-- | |
关系运算符 | >、>=、<、<=、==、!= | |
位运算符 | 位逻辑运算符~、&、|、^ | |
位移位运算符<<、>> | ||
逻辑运算符 | &&、||、! | |
赋值运算符 | 基本赋值运算符 = | |
复合赋值运算符 +=、-=、*=、/=、%=、|=、^=、>>=、<<= | ||
条件运算符 | ?: | |
逗号运算符 | , | |
数据长度运算符 | sizeof | |
专用运算符 | 强制类型转换运算符 | () |
成员运算符 | ->、. | |
下标运算符 | [ ] | |
指针运算符 | &、* |
2、运算对象
单目运算符、双目运算符、三目运算符
3、优先级
4、结合性
优先级 | 运算符 | 结合性 |
---|---|---|
1 | ( ) [ ] -> . | 从左至右 |
2 | ! ~ ++ -- *(取内容)&(取地址)+(取正)-(取负)sizeof | 从右至左 |
3 | *(乘)/ % | 从左至右 |
4 | +(加)-(减) | |
5 | << >> | |
6 | < <= > >= | |
7 | == != | |
8 | &(位逻辑与) | |
9 | ^ | |
10 | | | |
11 | && | |
12 | || | |
13 | ?: | |
14 | = += -= *= /= %= &= ^= |= >>= <<= | 从右至左 |
15 | , | 从左至右 |