对变量的定义可以包括三个方面:
·数据类型
基本数据类型
―――
基本数据类型最主要的特点是,其值不可以再分解为其它类型,也就是说:基本数据类型是自我说明的。
·常量
整型常量
前缀
后缀
L
,
LU
十进制整常数:
无
八进制整常数:
0
十六进制整常数:
0x
浮点常量
前缀
后缀
F
十进制小数形式:
指数形式:
实型常数不分单、双精度,都按双精度
double
型处理。
字符常量(字符常量占一个字节的内存空间)
字符串常量(字符串常量占的内存字节数等于字符串中字节数加
1
)
枚举常量
·变量
整型变量
基本型:
int
,
在内存中占
2
个字节。
短整量:
short int
或
short
。
长整型:
long int
或
long
,
在内存中占
4
个字节。
无符号型:
unsigned
。
无符号基本型:
unsigned int
或
unsigned
。
无符号短整型:
unsigned short
。
无符号长整型:
unsigned long
。
浮点变量
单精度:
float
双精度:
double
长双精度:
long double
字符变量
枚举变量
构造数据类型
―――
构造数据类型是根据已定义的一个或多个数据类型用构造的方法来定义的。
·数组类型
·结构体类型
·共用体(联合)类型
指针类型
空类型
·存储类型
·作用域
运算符:
算术运算符
―――
用于各类数值运算。
加
(+)
、减
(-)
、乘
(*)
、除
(/)
、求余
(
或称模运算,
%)
、自增
(++)
、自减
(--)
关系运算符
―――
用于比较运算。
大于
(>)
、小于
(<)
、等于
(==)
、
大于等于
(>=)
、小于等于
(<=)
和不等于
(!=)
逻辑运算符
―――
用于逻辑运算。
与
(&&)
、或
(||)
、非
(!)
位操作运算符
―――
参与运算的量,按二进制位进行运算。
包括位与
(&)
、位或
(|)
、位非
(~)
、位异或
(^)
、左移
(<<)
、右移
(>>)
赋值运算符
―――
用于赋值运算。
简单赋值
(=)
、复合算术赋值
(+=,-=,*=,/=,%=)
和复合位运算赋值
(&=,|=,^=,>>=,<<=)
条件运算符
?:
逗号运算符
―――
用于把若干表达式组合成一个表达式
,
指针运算符
用于取内容
(*)
和取地址
(&)
求字节数运算符
―――
用于计算数据类型所占的字节数
用于计算数据类型所占的字节数
(sizeof)
。
特殊运算符
括号
()
,下标
[]
,成员
(
→,
.)
等
几种
。
C
语句:
表达式语句
――― 表达式语句由表达式加上分号“;”组成。
函数调用语句
――― 由函数名、实际参数加上分号“;”组成。
控制语句
――― 控制语句用于控制程序的流程,以实现程序的各种结构方式。
条件判断语句:if语句、switch语句;
循环执行语句:do while语句、while语句、for语句;
转向语句:break语句、goto语句、continue语句、return语句。
复合语句
――― 把多个语句用括号{}括起来组成的一个语句
空语句
――― 只有分号“;”组成的语句称为空语句。
用户存储空间可以分为三个部分:
程序区;
静态存储区;
动态存储区;
动态存储区存放以下数据:在函数开始调用时分配动态存储空间,函数结束时释放这些空间。
函数形式参数;
自动变量(未加static声明的局部变量);
函数调用实的现场保护和返回地址;
全局变量全部存放在静态存储区,在程序开始执行时给全局变量分配存储区,程序行完毕就释放。
静态局部变量在编译时赋初值,即只赋初值一次;而对自动变量赋初值是在函数调用时进行,每调用一次函数重新给一次初值
为了提高效率,C语言允许将局部变量得值放在CPU中的寄存器中,这种变量叫“寄存器变量”,用关键字register作声明。
文件
文件类型:文本文件、二进制文件
文件指针:FILE *pFile;
打开文件:将文件指针和文件对象相关联
关闭文件:断开文件指针和文件对象的关联
操作
|
方法
|
成功返回值
|
失败返回值
|
备注
|
打开文件
|
pFile=fopen(
文件名,打开方式)
|
文件指针
|
NULL
|
打开方式:
r
(read):
读
w
(write):
写
a
(append):
追加
t
(text):
文本文件,可省略不写
b
(banary):
二进制文件
+
:
读和写
|
关闭文件
|
fclose(pFile)
|
0
|
非0
|
|
文件读写
| ||||
读字符
|
fgetc(pFile)
;
|
字符
|
|
使用fgetc 函数后,该位置指针将向后移动一个字节。
|
写字符
|
fputc(
字符量,文件指针)
|
写入的字符
|
EOF
|
|
读字符串
|
fgets(
字符数组名,n,文件指针);
|
字符数组的首地址
|
|
从fp所指的文件中读出n-1个字符送入字符数组str中,第n个为串结束标志'/0'
|
写字符串
|
fputs(
字符串,文件指针);
|
|
|
|
数据块读函数
|
fread(buffer,size,count,fp);
|
|
|
buffer
是一个指针,表示存放输入数据的首地址。
size
表示数据块的字节数。
count
表示要读写的数据块块数。
fp
表示文件指针。
|
数据块写函数
|
fwrite(buffer,size,count,fp);
|
|
|
buffer
是一个指针,表示表示存放输出数据的首地址。
size
表示数据块的字节数。
count
表示要读写的数据块块数。
fp
表示文件指针。
|
格式化读函数
|
fscanf(
文件指针,格式字符串,输入表列);
|
|
|
|
格式化写函数
|
fprintf(
文件指针,格式字符串,输出表列);
|
|
|
|
文件定位
| ||||
到文件头
|
rewind(
文件指针);
|
|
|
把文件内部的位置指针移到文件首。
|
到任意位置
|
fseek(
文件指针,位移量,起始点);
|
|
|
“
文件指针
”
指向被移动的文件。
“
位移量
”
表示移动的字节数,
“
起始点
”
表示从何处开始计算位移量
规定的起始点有三种:文件首,当前位置和文件尾。
文件首 SEEK_SET 0
当前位置 SEEK_CUR 1
文件末尾 SEEK_END 2
fseek
函数一般用于二进制文件。在文本文件中由于要进行转换,故往往计算的位置会出现错误。
|
文件检测函数
| ||||
文件结束检测函数
|
feof(
文件指针);
|
1
|
0
|
判断文件是否处于文件结束位置
|
读写文件出错检测函数
|
ferror(
文件指针);
|
0
|
非0
|
检查文件在用各种输入输出函数进行读写时是否出错。
|
出错标识和文件结束标识清0函数
|
clearerr(
文件指针);
|
|
|
清除出错标志和文件结束标志,使它们为0值。
|
其他常用操作
| ||||
fp2=stdout;
文件指针只想标准输出(显示器)
|
|
rewind(fp)
将文件指针移到文件头
|