还剩20页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
第一章C语言概述 [考点一]C语言概述 C语言是一种结构紧凑、使用方便、程序执行效率高的编程语言,它有9种控制语句、32个关键字和34种运算符C语言的数据结构也非常丰富,它的多种数据类型可以实现如链表、树、栈等复杂的运算,并且用结构化控制句来实现函数的模块化C语言的语法不太严格,程序的设计自由度大,它可以直接访问物理地址,还可以直接对硬件操作C语言也是一种移植性比较好的语言 [考点二]C语言程序的构成
(1)C语言的源程序是由函数构成的,每一个函数完成相对__的功能,其中至少包括一个主函数
(2)C程序总是从__in函数开始执行
(3)C语言规定每个语句以分号结束,分号是语句组成不可缺少的部分,它在每条语句的最后出现
(4)程序的注释部分应括在/*和*/之间不能有空格,注释部分允许出现在程序的任何位置 [考点三]C程序的生成过程 C程序是先由源文件经编译生成目标文件,然后经过连接生成可执行文件,源程序的扩展名为.c,目标文件的扩展名为.o__,可执行程序的扩展名为.exe [考点四]标识符 在编写程序时,必须为函数、变量等命名,这个名字称为标识符标识符可以是一个或多个字符,标识符的第一个字符必须是字母或下划线,随后的字符只能是字母、数字或下划线要区分字母的大小写 标识符不能与程序中具有特殊意义的关键字相同,不能与用户编制的函数名、C语言库函数相同,在程序中各种标识符尽量不要重复,以便区分选择变量名和其他标识符时,应注意做到“见名知义” [考点五]常量 在程序运行中,其值不能被改变的量称为常量常量有5种类型整型常量、实型常量、字符型常量、字符串常量和符号常量
(1)整型常量 整型常量有3种十进制整型常量、八进制整型常量和十六进制整型常量
(2)实型常量 实型常量有两种型式小数形式和指数形式
(3)字符常量 一个字符常量代表ASCII码字符集里的一个字符,在程序中用单撇号括起来,以便区分 除了形式上的字符常量外,C语言还有特殊的字符常量——转义字符常量
(4)字符串常量 字符串常量是用双撇号括起来的一个或一串字符
(5)符号常量 符号常量由宏定义“#define”定义的常量,在C程序中可用标识符代表一个常量 [考点六]变量 变量就是其值可以改变的量变量要有变量名,在内存中占据一定的存储单元,存储单元里存放的是该变量的值不同类型的变量其存储单元的大小不同,变量在使用前必须定义
(1)整型变量 整型变量分为4种基本型、短整型、长整型和无符号型
(2)实型变量 实型变量分为单精度类型和双精度类型 在一般的系统中,float型数据在内存中占4个字节,double型数据占8个字节单精度实数提供7位有效数字,双精度实数提供15-16位有效数字实型常量不分float开和double型,一个实型常量可以赋给一个float型或double型变量,但变量根据其类型截取实型常量中相应的有效数字
(3)字符变量 字符变量用来存放字符常量,字符变量用关键字char说明,每个字符变量中只能存放一个字符 将一个字符赋给一个变量时,并不是将该字符本身存储到内存中,而是将该字符对应的ASCII码存储到内存单元中 由于在内存中字符以ASCII码存放,它的存储形式和整数的存储形式类似,所以C语言中字符型数据与整型数据之间可以通用,一个字符能用字符的形式输出,马能用整数的形式输出,字符数据也能进行算术运算,此时相当于对它们的ASCII码进行运算 [考点七]类型的自动转换和强制转换 当同一表达式中各数据的类型不同时,编译程序会自动把它们转变成同一类型后再进行计算 转换优先级为charintfloatdouble即左边级别“低”的类型向右边转换具体地说,若在表达式中优先级最高的数据是double型,则此表达式中的其他数据均被转换成double型,且计算结果也是double型;在做赋值运算时,若赋值号左右两边的类型不同,则赋值号右边的类型向左边的类型转换;当右边的类型高于左边的类型时,则在转换时对右边的数据进行截取第2章运算符与表达式 [考点一]C运算符简介 [考点二]运算符的结合性和优先级
(1)在C语言的运算符中,所有的单目运算符、条件运算符、赋值运算符及其扩展运算符结合方向都是从右向左,其余运算符的结合方向是从左向右
(2)各类运算符优先级别的比较 初等运算符单目运算符算术运算符关系运算符逻辑运算符条件运算符赋值运算符逗号运算符 说明以上优先级别由左到右递减,初等运算符优先级最高,逗号运算符优先级最低 [考点三]强制类型转换运算符 可以利用强制类型转换符将一个表达式转换成所需类型,其一般形式为 [考点四]逗号运算符和逗号表达式 用逗号运算符将几个表达式连接起来称为逗号表达式 逗号表达式的求解过程是先求解表达式1,然后依次求解表达式2,直到表达式n的值整个逗号表达式的值就是表达式n的值需要注意的是,逗号运算符是所有运算符中级别最低的 [考点五]基本的算术运算符 需要说明的是两个整数相除的结果为整型,如果两个数中有一个数为实数,则结果为double型 [考点六]算术表达式和运算符的优先级与结合性 算术表达式是用算术运算符和括号将运算量连执着起来的,符合C语言语法规则的表达式运算对象包括函数、常量和变量等 在计算机语言中,算术表达式的求值规律与数学中的四则运算的规律类似,其运算规则和要求如下
(1)在算术表达式中,可使用多层圆括号,但括号必须配对运算时从内层圆括号开始,由内向外依次计算各表达式的值
(2)在算术表达式中,对于不同优先级的运算符,可按运算符的优先级由高到低进行运算,若表达式中运算符的优先级相同,则按运算符的结合方向进行运算
(3)如果一个运算符两侧的操作数类型不同,则先利用自动转换或强制类型转换,使两者具有相同类型,然后进行运算 [考点七]自增自减运算符 作用使变量的值增1或减1 [考点八]赋值运算符和赋值表达式 赋值符号“=”就是赋值运算符,作用是将一个数据赋给一个变量或将一个变量的值赋给另一个变量,由赋值运算符组成的表达式称为赋值表达式 在程序中可以多次给一个变量赋值,每赋一次值,与它相应的存储单元中的数据就被更新一次,内存中当前的数据就是最后一次所赋值的那个数据 [考点九]复合的赋值运算符 在赋值运算符之前加上其他运算符就可以构成复合赋值运算符 [考点十]赋值运算中的类型转换 如果赋值运算符两侧的数据类型不一致,在赋值前系统将自动先把右侧表达式求得的数值按赋值号左边变量的类型进行转换,但这种转换仅限于某些数据之间,通常称为“赋值兼容” 常用的转换规则
(1)当实型数据赋值给整型变量时,将实型数据的小数部分截断
(2)当整型数据赋给实型变量时,数值不变,但以浮点数形式存储到实型变量中
(3)当double尖型数据赋值给float型变量时,取其前面7位的有效数字,存放到float型变量的存储单元中,这时数值可能溢出
(4)当字符型数据赋值给整型变量时,由于整型变量占两个字节,则字符只占一个字节,只需将字符数据放到整型变量低8位中,对该整型变量最高位进行符号扩展,其他位补零
(5)当整型、短整型、长整型数据赋值给一个char类型变量时,将低8位原封不动地送到char类型变量中 [考点十一]位运算符和位运算 在计算机中,数据都是以二进制数形式存放的,位运算就是指对存储单元中二进制位的运算 C语言提供了6种位运算符 说明
(1)位运算中除“-”以外,均为双目运算符,要求两侧各有一个运算量
(2)运算量只能是整型或字符型数据,不能为实型数据第3章基本语句 [考点一]C语句分类 C语言的语句用来向计算机系统发出指令,一个实际的源程序通常包含若干语句,这些语句用来完成一定的操作任务 C程序中的语句,按照它们在程序中出现的顺序依次执行,由这样的语句构成的程序结构称为顺序结构 C语句的分类
(1)控制语句
(2)其他类型语句
(3)空语句
(4)复合语句 赋值语句此外理解=和== 输入输出概念及其实现
(1)数据从计算机内部向外部输出设备输送的操作称为“输出”,数据从计算机外部向输入设备送入的操作称为“输入”
(2)C语言本身不提供输入输出语句,可以通过函数来实现输入和输出的操作
(3)在使用C语言库函数时,首先要用预编译命令“#include”将有关的“头文件”包含到用户源文件中这里需要用到编译预处理命令 [考点二]字符输出函数putchar putchar函数的作用是向终端输出一个字符 它输出字符变量a的值,a也可以是字符型变量若a是整型变量,则输出的是ASCII码值为该变量值的那个字符 [考点三]字符输入函数getchar getchar函数的作用是从终端输入一个字符,getchar函数没有参数,函数值是从输入设备得到的字符 [考点四]printf函数 该函数是C语言提供的标准输出函数,它的作用是向终端按指定格式输出若干个数据 该函数的一般形式是
(1)“格式控制”用双引号括起来的字符串,它包括两种信息 a.格式转换说明 b.需要原样输出的字符
(2)“输出表列”是需要输出的一些数据,可以是常量变量或表达式 识记格式字符 d o x u c s f e g 使用该函数时的注意事项
(1)在格式控制字符串中,格式说明与输出项从左到右在类型上必须一一对应匹配
(2)在格式控制串中,格式说明与输出项的个数也要相等
(3)在格式控制串中,除了合法的格式说明外,可以包含任意的合法字符这些字符在输出时将被“原样输出”
(4)如果要输出“%”,则应该在格式控制串中用两个连续的百分号“%%”来表示 [考点五]scanf函数 该函数的一般形式是 格式说明 该函数中的格式说明也是以%开始,以及个格式字符结束,中间可以加入附加的字符 说明
(1)对unsigned型变量的数据,可以用%d、%o、%x格式输入
(2)在该函数中格式字符前可以用一个整数指定输入数据所占宽度,但对于实型数则不能指定其小数位的宽度
(3)在格式控制串中格式说明的个数应该与输入项的个数相等,且要类型匹配 使用该函数要注意的问题
(1)该函数中的输入项只能是地址表达式,而不能是变量名或其他内容,也就是说输入项必须是某个存储单元的地址
(2)如果在“格式控制”字串中除了格式说明以外还有其他字符,则在输入数据时应输入与这些字符相同的字符
(3)在用“%c”格式输入字符时,空格字符和转义字符都作为有效字符输入
(4)在输入数据时,若实际输入的数据少于输入项个数,该函数会等待输入,直到满足条件或遇到到非法字符才结束,若实际输入数据多于输入项个数,多答卷的数据将留在缓冲区备用,作为下一次输入操作的数据第4章选择结构 [考点一]关系运算符及其优先级 C语言中的关系运算符有 所谓“关系运算”其实就是“比较运算”,对两个值进行比较,判断其比较后的结果是否符合指定条件,从而执行不同的程序段 识记结合性自左向右 优先次序 [考点二]关系表达式 由关系运算符连接而成的表达式(可以是算术表达式或其他表达式)称为关系表达式 当关系运算符两边的值的类型不一致时,若一边是整型,一边是实型,系统将自动把整型数转化为实型数,然后再进行比较 [考点三]逻辑运算符及其优先级 C语言中的逻辑运算符有 “”和“||”是双目运算符,要求要有两个操作数,而“!”是单目运算符,只要求有一个操作数即可以上逻辑运算符的优先级是“!”级别最高,其次是“”,“||”级别最低,逻辑运算符中的“”和“||”低于关系运算符,“!”高于算术运算符 !算术运算符关系运算符“”“||”赋值运算符 [考点四]逻辑表达式 逻辑表达式由逻辑运算符和运算对象组成,其中,参与逻辑运算的对象可以是一个具体的值,还可以是C语言中任意合法的表达式,逻辑表达式的运算结果为1或0 识记逻辑运算表 [考点五]if的几种形式 if语句的作用 if语句的几种形式 第一种形式 第二种形式 第三种形式 [考点六]if语句的嵌套 在if语句中又包含一个或多个if语句结构,称为if语句的嵌套,一般形式如下 if if语句1; else语句2; else if语句1; else语句2; 注意else总是与它上面的最近的没有与else配对的if配对 [考点七]条件运算符构成的选择结构 有如下语句 ifx elsemin=y; 可以用min=x 该表达式的执行过程是 优先级条件运算符高于赋值运算符,但低于逻辑运算符、关系运算符和算术运算符 [考点八]switch语句 switch语句是C语言提供的多分支选择语句,用来实现多分支选择结构 语法结构 注意
(1)switch是关键字,其后用花括号括起来的部分是switch语句体
(2)switch后面括号内的“表达式”,可以是C语言中任意合法、表达式,但表达式两侧的括号不能省略
(3)case也是关键字,与其后面的常量表达式合称case语句标号,常量表达式的类型必须与switch后面的表达式的类型相匹配,且各case语句标号的值各不相同,不能重复
(4)default也是关键字,起标号的作用,代表除了以上所有case标号之外的那标些号,default标号可以出现在语句体的任何标号位置上,当然,也可以没有
(5)case语句标号后的语句
1、语句2等,可以是一条语句,也可以是若干条,在必要时,case语句标号后的语句可以省略不写 [考点九]语句标号 语句标号用标识符表示,它的命名规则与变量名相同,即由 、 、 组成,在标识符后加一个冒号,就成了一个语句标号在C语言中可以在任何语句前加上语句标号 [考点十]goto语句 goto语句为无条件转向语句,goto语句的一般形式如下 goto语句标号;goto语句的作用 第5章循环结构 [考点一]while语句 在许多问题中,需要做某些重复执行的操作,这时就会用到循环结构在程序设计中也一样,例如,对1~100之间的自然数进行求和计算,计算某班级所有同学的成绩总分,还有很多,几乎所有的程序都会包含循环控制结构 循环的定义___________________________ 它与顺序结构和选择结构共同作为各种复杂程序的基本构造单元 while语句的一般形式___________________________ 说明 while是C语言的关键字紧跟其后的表达式可以是C语言中任意合法的表达式,该表达式是循环条件,由它来控制循环体是否执行循环体可以是一条可执行语句,当多项操作需要多次重复做时,可以使用复合语句 执行过程
(1)___________________________
(2)___________________________
(3)___________________________ 特点先对表达式进行条件判断,然后执行语句 [考点二]do…while 一般形式 说明do是C语言关键字,必须和while联合使用,不能__出现 do…while循环由do开始,用while结束while后面的括号中的表达式,可以是C语言中任意合法的表达式,由它控制循环是否执行,且括号不可丢 执行过程___________________________ [考点三]for语句 一般形式___________________________ 说明for是C语言的关键字,其后的括号中通常有3个表达式,这3个表达式可以是C语言中任意合法表达式,它们通常用于for循环的控制各个表达式之间用“;”隔开,且括号不可省略按照语法规则,循环体只能是一条语句,如需要完成多项操作,可通用大括号括起来构成复合语句 执行过程___________________________ [考点四]循环的嵌套 在某一个循环体内部又包含了另一个完整的循环结构,称为循环的嵌套 一般形式 while___________________________ for___________________________ do___________________________ [考点五]循环的比较 前面讲的几种循环都可以用来处理同一个问题,一般情况下它们可以互相代替不过最好根据每种循环的不同特点选择最适合的 while和do…while循环,只在while后面指定循环条件,循环体内应包含使循环趋于结束的语句for中使循环趋于结束的操作可以包含在“表达式3”中由while完成的循环,用for都能完成在for语句“表达式1”中可以实现循环变量的初始化,而while和do…while的循环变量初始化应在while和do…while语句之前完成 [考点六]break语句 break语句只能出现在循环体内及switch语句内,不能用于其它语句中 当break出现在循环体中的switch语句体内时,其作用是___________________________ 当break出现在循环体只是并不在switch语句体内时,则在执行break后,跳出本层循环,当然也不再去进行条件判断 [考点七]continue语句 作用:___________________________ continue和break语句的区别是___________________________第6章数组 [考点一]数组 数组是由属于同一个数据类型的有序数据集构成数组中的每一个数据称为“元素”可以用一个统一的数组名和下标来唯一地标识数组中的元素 [考点二]一维数组的定义 一般形式__________________________________ [考点三]一维数组元素的引用 一般形式__________________________________ 说明引用数组元素时,数组的下标可以是整型常量,也可以是整型表达式 和变量一样,数组必须先定义后使用数组元素只能逐个引用而不能把数组当做一个整体一次引用 [考点四]一维数组的初始化 当数组定义后,系统会为该数组在内存中开辟一串连续的存储单元,但这些存储单元中并没有确定的值可以在定义数组时为所含的数组元素赋初值 在指定初值时,第一个初值必定赋给下标为0的元素也就是说数组元素的下标是从0开始的同时,不可能跳过前面的元素给后面的元素赋初值,但是允许为前面元素赋值为0当所赋初值个数少于所定义数组的元素个数时,将自动给后面的其他元毒害补以初值0;当所赋初值个数多于所定义数组的元素个数时,也就是说超出了数组已经定义的范围,在编译时系统将给出出错信息 [考点五]二维数组的定义 在C语言中,二维数组中元素排列的顺序是按行存放,即在内存中先顺序存放第一行的元素,再存放第二行的元因此,二维数组元素的存储与一维数组元素存储相类似,总是占用一块连续的内存单元 二维数据定义的一般形式 __________________________________ [考点六]二维数组的引用 二维数组的表示形式为____________________________________ 数组的下标可以是整型表达式例如___________________________ 数组元素可以出现在表达式中,也可以被赋值 [考点七]二维数组的初始化 可以在定义二维数组的同时给二维数组的各元素赋初值 全部初值放在一对花括号中,每一行的初值又分别括在一对花括号中,之间用逗号隔开当某行一对花括号内的初值个数少于该行中的元素的个数时,系统将自动地给后面的元素补初值0同样不能跳过每个前面的元素而给后面的元素赋初值 [考点八]通过赋初值定义二维数组的大小 对于一维数组,可以在数组定义语句中省略方括号中的数量表达式,通过所赋初值的个数来确定数组的大小;对于二维数组,只可以省略每一个方括号中的常量表达式,而不能省略第二个方括号中的常量表达式 第一维的大小按以下规则决定
(1)当初值的个数能被第二维的常量表达式的值除尽时,所得商数就是第一维的大小
(2)当初值的个数不能被第二维的常量表达式的值除尽时则 第一维的大小=所得商数+1; [考点九]字符数组 字符数组就是数组中的每个元素都是字符,定义方法同普通数组的定义相同,即逐个对数组元素赋值 [考点十]字符数组的初始化及引用 对字符数组初始化,可逐个元素地赋值,即把字符逐个赋给数组元素 如果花括号中提供的初值个数大于数组长度,则_______________如果初值个数小于数组长度,则_______________ 其余元素则_______________ [考点十一]字符串和字符串结束标志 C语言中,将字符作为字符数组来处理为了测定字符吕的实际长度,C语言规定了一个字符串结束标志,以字符“”代表也就是说在遇到这个字符的时候表示字符串结束,由它前面的字符组成字符串 [考点十二]字符数组的输入输出 字符数组的输入与输出有两种方法
(1)_______________
(2)_______________ 第7章函数 [考点一]库函数 C语言提供了丰富的库函数,这些函数包括了常用的数学函数,如求平方根的sqrt函数,对字符和字符串进行处理的函数,进行输入输出处理的各函数等 调用C语言标准库函数时要求使用include命令对每一类库函数进行文件包含,即在主调函数中需要调用库函数时,应在主调函数的声明部分用_______命令把该库函数的头文件名包含进来 在C语言中,库函数的调用可以以两种形式出现
(1)________________
(2)________________ [考点二]函数的定义 一般形式_____________________ 说明函数名和各个形式参数都是由用户命名的合法标识符,与普通变量名的定义规则相同在同一程序中,函数名必须唯一,不能出现重名的情况形式参数名只要在同一函数中唯一即可,由于形参作用域不相同,因此形式参数名可以与其他函数中的变量名同名C语言规定,不能在一个函数内部再定义函数,也就是说函数不能嵌套定义
(1)若在函数的首部省略了函数返回值的类型名,可以把函数首部写成_________________________
(2)紧跟在函数名之后的圆括号中的内容是形式参数和类型说明表,在每个形参之前都要有类型名,以标识形式参数的类型各形参的定义之间用逗号分隔若所定义的函数没有形参,函数名后的一对圆括号依然不能省略在某些情况下,函数体可以是空的
(3)在函数体中,除形参外,用到的其他变量必须在说明部分进行定义,这些变量只在函数被调用时才被临时分配内存单元,当退出函数时,这些临时开辟的存储单元全部被释放掉,即在该函数体内部定义的变量都将不存在因此,这些变量只在函数体内部起作用,与其他函数体内的变量并不相关 [考点三]形式参数和实际参数 在程序中调用函数时,绝大多数情况下,主调函数和被调函数之间会发生数据传递关系,这就要用到有参函数在定义函数时,函数名后面括号中的变量称为“________”;在主调函数中,函数名后面括号中的参数称为“________” 说明
(1)实参可以是常量、变量或表达式
(2)在被定义的函数中必须指定形参类型
(3)实参与形参的类型应相同或赋值相兼容
(4)C语言规定,实参变量对形参变量的数据传递是“值传递”,即单向传递只能由实参传给形参,而不能由形参返回来给实参内存中,实参单元与形参单元是不同的单元
(5)在调用函数时,给形参分配配存储单元,并将实参对应的值传递给形参调用结束后,形参单元被释放,实参单元仍保留并维持原值 [考点四]函数的返回值 函数的返回值就是通过函数调用使主调函数参得到一个确定的值函数的值通过return语句返回,return语句的一般形式是 return语句中的表达式的值就是所求的函数值此表达式值的类型必须与函数首部所说明的类型一致若类型不一致,则以函数值的类型为准,由系统自动进行转换 [考点五]函数调用的一般形式 一般形式__________________ 函数的调用可以分为调用无参函数和调用有参函数两种,如果说是调用无参函数,则不用“实参表列”,但括号不能省略在调用函数时,若实参列表中有多个实参,各参数间用逗号隔开实参与形参要求类型一致 [考点六]函数的调用方式
(1)___________
(2)_____________
(3)______________ C语言中,调用函数和被调用函数之间的数据可通过3种方式进行传递
(1)________________________________________________
(2)________________________________________________
(3)________________________________________________ [考点七]函数的说明 C语言中,除了主函数外,对于用户定义的函数要遵循先定义后使用的规则把函数的定义放在调用之后,应该在调用之前对函数进行说明 函数说明的一般形式 此处的参数名完全是虚设的,它们可以是任意的用户标识符,既不必与函数首部中的形参名一致,又可与程序中的任意用户标识符同名,实际上参数名常常省略函数说明了语句中的类型名必须与函数返回值的类型一致 函数说明可以是一条__的语句,对函数进行说明,能使C语言的编译程序在编译时进行有效的类型检查当调用函数时,若实参的类型与形参的类型不能赋值兼容而进行非法转换,C编译程序将会发现错误并报错;当实参的个数与形参的个数不同时,编译程序也将报错 [考点八]函数说明的位置 一个函数在所有函数的外部,如在被用之前说明,则在说明后的所有位置上都可以对该函数进行调用说明与定义是两个不同的概念 [考点九]函数的嵌套调用 看书 [考点十]函数的递归调用 看书 [考点十一]数组元素作为函数实参 数组元素可以作为函数的实参,与用变量作为实参一样,按照单向值传递的方式进行传递,可参照以后的例题讲解 [考点十二]数组名可能作为函数参数 可以用数组名作为函数参数,此时实参与形参都应用数组名,此时的数组名是整个数组的首地址,在以后的章节中将详细讲解 [考点十三]局部变量 在一个函数内部定义的变量,它们只在本函数范围内有效,即只有本函数才能使用它们,其他函数不能使用这些变量,我们将这些变量称为“局部变量”没函数中可以使用相同的名字的局部变量,它们代表不同的对象,在内存中占不同的单元,互不干扰 [考点十四]全局变量 在函数之外定义的变量称为外部变量,外部变量是全局变量全局变量可以为本文件中其他函数所共用,它的有效范围从定义变量开始到本文件结束 [考点十五]auto变量 看书 [考点十六]regirster变量 看书 [考点十七]静态存储类别的局部变量 看书 [考点十八]用static声明外部变量 有时在程序设计中希望某些外部变量只限于本文件使用,而不能被其他文个把引用,这时可以在定义外部变量时加一个static声明 [考点__]extern声明外部变量
(1)在一个文件内声明外部变量 看书
(2)在多文件的程序中声明外部变量 看书 [考点__]内部函数 内部函数就是只能被本文件中的其他函数所调用的函数在定义内部函数时,在函数名和函数类型前加static 一般形式为____________________________________ 内部函数又称为静态函数,只局限于所在文个把,在不同文件中可以有同名的内部函数,互不干扰 [考点__一]外部函数 在定义函数时,如果在函数首部的最左端冠以关键字extern,则表示此函数是外部函数,可供其他文件调用的 一般形式____________________________________ C语言规定,如果在定义函数时省略extern,则隐含为外部函数在需要调用此函数的文件中,用extern声明所用的函数是外部函数 指针【考点1】指针变量 指针变量是用来存储地址的,而一般变量是存储数值的指针变量可指向任意一种数据类型,但不管它指向的数据占用多少字节,一个指针变量占用四个字节 【考点2】指针变量的定义 格式为类型名*指针变量名二维指针int**p;可以理解为基类型为int*类型 【考点3】指针变量的初始化 指针变量在使用前必须要初始化,把一个具体的地址赋给它,否则引用时会有副作用,如果不指向任何数据就赋“空值”NULL 【考点4】指针变量的引用 是取地址符,*是间接访问运算符,它们是互逆的两个运算符在指针变量名前加间接访问运算符就等价它所指向的量 【考点5】指针的运算 *p++和*p++之间的差别*p++是地址变化,*p++是指针变量所指的数据变化一个指针变量加一个整数不是简单的数学相加,而是连续__若干地址当两个指针指向同一数组时,它们可以比较大小进行减法运算。