c语言程序设计基本概念,c语言程序设计基本概念考点归纳.doc

253b171540df25e1b84436cbe50dfc72.gifc语言程序设计基本概念考点归纳.doc

第第 1 1 章章 程序设计基本概念考点归纳程序设计基本概念考点归纳 1.1 C1.1 C 语言的特点语言的特点 C 语言是近年来非常流行的语言,很多人宁愿放弃已经熟悉的其他语言而改用 C 语言, 其原因是 C 语言有优于其他语言的一系列特点。下面是 C 语言的主要特点 1语言简洁、紧凑,并且使用方便、灵活; 2运算符丰富; 3数据结构丰富; 4具有结构化的控制语句; 5语法限制不太严格,使程序设计比较自由; 6C 语言允许用户直接访问物理地址, 能进行位bit操作, 可以直接对硬件进行操作。 1.2 1.2 源程序的书写规则源程序的书写规则 C 语言的书写规则。C 语言书写格式自由,一行内可以写几个语句,一个语句也可以分 写在多行上。C 程序没有行号,每个语句和数据定义的最后必须有一个分号。C 语言中分号 是语句中不可少的,即使是程序中的最后一个语句也应该包含分号。C 语言中的注释可以 用/*用*/结束,注释可以在任何允许插入空格符地方插入。C 语言中注释不允许嵌 套,注释可以用西文,也可以用中文。 1.3 C1.3 C 语言的风格语言的风格 由于 C 语言对语法限制不太严格, 为了保证程序的准确性和可读性, 建议在书写程序采 用阶梯缩进格式。也就是按如下格式书写 C 语言程序 ; * ; ; ; *; 概括起来,C 语言程序具有如下的风格 C 语言程序的函数具体模块结构风格,使得程序整体结构清晰、层次清楚,为模块化 程序设计提供了强有力的支持。 C 语言的源程序的扩展名都是.C。 C 语言中的注释格式为 /*注释内容*/ /与*之间不允许有空格,注释部分允许出现在程序中的任何位置。 C 语言中的所有语句都必须以分号“;”结束。 第第 2 2 章章 C C 程序设计的初步知识考点归纳程序设计的初步知识考点归纳 2.1 2.1 程序的构成程序的构成 尽管 C 程序的内容千变万化, 但是它们的构成都是一致的, 一个完整的 C 源程序的格式 可以如下表示 编译预处理 主函数 函数 从上面中可以看出, 一个 C 源程序实际上就是若干函数的集合, 这些函数中有一个是程 序的主函数,任何 C 的源程序执行时,都是从主函数开始执行的,其它的函数最终必将被这 个主函数所调用。C 语言除了主函数规定必须取名 main 外,其它的函数名可以任取,但是 要符合 C 的标识符取名规则, 另外注意不要与保留字重名, 最好也不可与 C 语言中的库函数 或其它一些命令如编译预处另命令重名。 各个函数在程序中所处的位置并不是固定的, 但要 求一个函数是完整的、独立的。不允许出现在一个函数内部又去定义另一个函数,或是函数 格式不齐全的现象。一个完整的一般意义上的函数有一个固定的框架,编写具体的函数时, 只需在这个框架中填入相应的内容即可。框架如下 函数类型 函数名形参 形参说明 内部变量说明; 执行语句部分; 2.2 C2.2 C 语言的基本词法语言的基本词法 C 语言的基本词法由三部分组成符号集、关键字、保留字。 符号集就是一门语言中允许出现的字符的集合,C 语言的符号集就是 ASC码表中的一 些字符,在键盘上不能直接得到比如说响铃字符,C 语言引入了转义字符的概念,利用反 斜杠符号后加上字母的一个字符组合来表示这些字符, 当在源程序中遇到这类字符组 合时, 虽然这个字符组合是一个字符串的形式, 但 C 语言仍会自动将之理解成某一特定的字 符。比如,C 语言在处理这个字符组合时,会自动理解成回车换行符号。转义字符经 过进一步引申应用,形成了另外两种形式ddd和xnn,这里后的 ddd 和 xnn 分别代表三位八进制和两位十六进制数打头的x只是标明后面跟着的是十六进 制数,这两种形式不再局限于表示不可打印的字符,它们可以表示 ASC码表中的任意字 符,只要把所需表示的字符的 ASCII 码转换成八进制数或十六进制数即可。比如说字母 A,ASCII 码为 65,65 的八进制和十六进制分别为 101 和 x41,所以,字母 A 可表示为 101或x41,对转义字符应认真理解。 标识符就是用以标识的符号。正如现实生活中给每一个人都取一个名字一样,C 语言中 的每一个对象如函数、变量等都必须取一个标识符以和其它对象区别开。在 C 语言中,这 个标识符是一个字符串, 这个字符串的选定有一定的规则 必须是以字母或下划线开头的字 母与数字的序列。 除了这个基本的规则外, C 语言对标识符的命名还有几个限制需加以注意 长度最好不要超过八个字符。 因 C 中对标识符只处理前 8 个字符, 超过 8 个长度的部分将 被 C 自动忽略掉。ABCDEFGH1和ABCDEFH2是同一个标识符;标识符不要与保留字 同名,最好也不要与 C 提供的标准标识符,如库函数重名;应注意 C 语言对大小写字母是 敏感的,Abcd 和 abcd 是两个不同的标识符。 关键字实际上就是一些特殊的标识符, 又称保留字, 这些保留字不允许用户对它重新定 义。 2.3 2.3 头文件、数据说明、函数的开始和结束标志头文件、数据说明、函数的开始和结束标志 1.头文件 也称为包含文件或标题文件, 一般放在一个 C 语言程序的开头, 用include 文件名的格式,其中文件名是头文件名,一般用.h 作为扩展名。 2.数据说明C 语言中的数据分常量和变量两种。 3.常量有数值常量和符号常量两种。 4.数值常量可以分为整型常量、实型常量、浮点型常量和字符常量。 5.符号常量用一个标识符代表的一个常量,又称标识符形式的常量。 6.变量其值可以改变的量,变量名习惯上用小写字母表示。 7.标识符用来标识变量名、符号常量名、函数名、数组名、类型名、文件名的有效字 符序列。 8.标识符的命名规则C 语言中标识符只能由字母、数字下划线三种字符组成,且第一 个字符必须为字母或下划线。 C 语言是大小写敏感语言, 即对大小写字母认为是不同的字符。 C 语言中标识符的长度随系统不同而字,如 TURBO C 中取前 8 个字符,8 个字符后面的字符 会自动取消。 第第 3 3 章章 顺序结构考点归纳顺序结构考点归纳 3.1 3.1 表达式语句、函数调用语句和空语句表达式语句、函数调用语句和空语句 1.C 语言的语句共分五大类表达式语句、控制语句、函数调用语句、空语句和复合语 句。 2.表达式语句的一般形式为 表达式; 最典型的表达式语句是由一个赋值表达式加一个分号构成的赋值语句。 3.控制语句是 C 语言程序设计中用来构成分支结构和循环结构的语句。此类语句有 if 语句,for 语句,while 语句,do-while 语句,switch 语句等。 4.函数调用语句的一般形式为 函数名实参表; 5.空语句的一般形式为 ; 这条语句的含义是什么也不做。 凡是在 C 语句程序中出现语句的地方都可以用一个分号 来代替一条语句。 6.复合语句的一般形式为 语句 1;语句 2 复合语句在功能上相当于一条语句。 3.2 3.2 数据的输入与输出,输入输出函数的调用数据的输入与输出,输入输出函数的调用 1.C 语言本身没有提供输入、输出操作语句。C 程序的输入和输出完全依靠调用 C 语言 的标准输入、输出函数来完成。四个常用的输入、输出函数是 printf 函数、scanf 函数、putchar 函数、getchar 函数 2.printf 函数是 C 语言提供的标准输出函数, 它的作用是在终端设备或系统隐含指定 的输出设备上按指定格式进行输出。Printf 函数的一般调用形式如下 printf格式控制,输出项表 如果在 printf 函数调用之后加上;,就构成了输出语句。 格式控制参数以字符串的形式描述,由两部分组成 普通字符将被简单地显示; 格式字符将引起一个输出参数项的转换和显示,由“”引出并以一个类型描述符 结束的字符串,中间可加一些可选的附加说明项,如下表所示。 附加说明项 附加说明项 说 明 -或 用于指定是否对齐输出,具有“-”符号表示左对齐,无“-”或有“”表示右对 齐 0 用于指定是否填写 0,有此项表示空位用 0 补充,无此项表示以空格补充 m.n 用于指定输出域宽及精度,m 是指域宽,n 为精度,当指定 n 时,隐含的精度为 6 位 L 或 h 用于输出长度修正。其中,l 对于整型是指 long,对实型是 double;h 只用于整 型的格式字符,并修正为 short 型 格式字符用于指定输出项的数据类型及输入格式,如下表所示。 注意编译程序只是在检查了 printf 函数中的格式参数后,才能确定有几个输出项, 是什么类型、以什么格式输出。在编程序时,应使输出格式与输出项对应。 格式字符 格式字符 说 明 CcD 输出一个字符 d 或 I 输出带符号的十进制整型数 OoO 以八进制无符号形式输出整型数不带前导 0 x 或 X 以十六进制无符号形式输出整型数不带前导 0 x 或 0X, 对于 x, 用 abcdef 输出 十六进制数码;对于 X,用 ABCDEF 输出十六进制数码 UuU 按无符号的八进制形式输出整型数 FfF 以小数的形式输出单精度或双精度数,小数位由精度指定,隐含的精度为 6;如指 定精度为 0,则小数部分包含小数点都不输出 e 或 E 以指数形式输出单精度及双精度数,小数位数由精度指定,隐含的精度为 6;如 指定精度为 0,则小数部分包含小数点都不输出 g 或 G 由系统决定是采用f 不是采用e 格式,以便使输出宽度最小 SsS 输出字符串中的字符,直到遇到0时为止,或输出指定的字符数 PpP 输出变量的内存地址 打印一个 3.scanf 函数是 C 语言提供的标准输入函数,它的作用是在终端设备或系统隐含指定 的输入设备上输入数据。Scanf 函数的一般调用形式是 scanf格式控制,输入项表 如果在 scanf 函数调用之后加上;,就构成了输入语句。 格式控制是用双引号括起来的字符串, 称为格式控制串。 格式控制串的作用是指定输入 时的数据转换格式,即格式转换说明。格式转换说明是由符号开始,其后是格式描述 符。 输入项表中的各输入项用逗号隔开, 各输入项只能是合法的地址表达式, 即在变量之前 加一个地址符号 字符串常量是用一对双引号括起的字符序列,如abcn。 请区别字符变量和字符串常量。a是字符常量,a是字符串常量。在内存中,字 符常量占一个字节,而对字符串常量,则在字符串的后面加一个字符串结束标志,以便 系统据此判断字符串是否结束。用0即 ASCII 代码为 0 的字符,即空字符作为 字符串结束的标志。例如,a内存占两个字节,即a 0 。 6.2 6.2 字符变量字符变量 字符变量用来存放一个字符常量,字符变量用 char 来定义。如 char a,b; a0;bk; printfc c n,a,b; 将输出两个字符 ok。 不能将一个字符串常量赋给一个字符变量,如 a0;bk; 是错误的。 给字符变量赋值可以采用如下三种方法 1直接赋以字符常量,如 charA; 2赋以转义字符,如 char c; printfc,c; 输出一个字符。 3赋以一个字符的 ASCII 代码,如字符a的 ASCII 代码为 97,则 char c97; printfc,c; 将输出一个字符a。实际上,字符数据在内存中是以整数形式字符 ASCII 代码存 放的,例如,字符a的 ASCII 码为 97,在内存字节中的存放形式为 01 10 00 01 在输出时,如果指定输出字符的格式符c输出,则输出字符a在输出时先将 ASCII 码转换为字符。如果指定按输出整数的格式d输出如 printfd,c,则 输出一个整数 97。 应记住,字符数据与整型数据二者间是通用的,可以互相赋值和运算,如 int aA; char c97; printdn,c-a; 将输出一个整数 32,因为A的 ASCII 码为 65。 第第 7 7 章章 函数考点归纳函数考点归纳 7.1 7.1 库函数的正确调用库函数的正确调用 1.C 语言提供了丰富的库函数,包括常用数学函数、对字符和字符串处理函数、输入输 出处理函数等。在调用库函数时要注意以下几点 1调用 C 语言标准库函数时必须在源程序中用 include 命令, include 命令的格式是 include头文件名 include 命令必须以号开头,系统提供的头文件名都以.h 作为后缀,头文件名用一对 双引号或一对尖括号括起来。 2标准库函数的调用形式 函数名参数表 2.在 C 语言中库函数的调用可以以两种形式出现 出现在表达式中; 作为独立的语句完 成某种操作。 7.2 7.2 函数的定义方法函数的定义方法 1.C 语言函数的一般形式为 函数返回值的类型名 函数名类型名 形参 1,类型名 形参 2, 说明部分 语句部分 定义的第一行是函数的首部,中的是函数体。 2.在老的 C 语言版本中,函数的首部用以下形式 函数返回值的类型名 函数名形参 1,形参 2 形参类型说明; 新的 ANSI 标准 C 兼容这种形式的函数首部说明。 3.函数名和形参名是由用户命名的标识符。在同一程序中,函数名必须唯一。形式参数 名只要在同一函数中唯一即可,可以与函数中的变量同名。 4.C 语言规定不能在一个函数内部再定义函数。 5.若在函数的首部省略了函数返回值的类型名,把函数的首部写成 函数名类型名 形参 1,类型名 形参 2, 则 C 默认函数返回值的类型为 int 类型。 6.当没有形参时,函数名后面的一对圆括号不能省略。 7.3 7.3 函数的类型和返回值函数的类型和返回值 1.函数的类型由函数定义中的函数返回值的类型名确定, 函数的类型可以是任何简单类 型,如整型、字符型、指针型、双精度型等,它指出了函数返回值的具体类型。当函数返回 的是整型值时,可以省略函数类型名。当函数只完成特定的操作而没有或不需要返回值时, 可用类型名 void空类型。 2.函数返回值就是 return 语句中表达式的值。 当程序执行到 return 语句时, 程序的流 程就返回到调用该函数的地方通常称为退出调用函数,并带回函数值。 7.4 7.4 形式参数与实际参数,参数值的传递形式参数与实际参数,参数值的传递 1.在函数定义中,出现的参数名称为形参形式参数,在调用函数时,使用的参数值称 为实参实际参数。 2.调用函数和被调用函数之间的参数值的传递是按值进行的, 即数据只能从实参单 向传递给形参。也就是说,当简单变量作为实参时,用户不能在函数中改变对应实参的值 第第 8 8 章章 指针考点归纳指针考点归纳 8.1 8.1 指针与指针变量的概念,指针与地址运算符指针与指针变量的概念,指针与地址运算符 1.在 C 语言中, 指针是指一个变量的地址, 通过变量的地址指向的位置找到变量的 值,这种指向变量地址可形象地看作指针。用来存放指针的变量称为指针变量,它 是一种特殊的变量,它存放的是地址值。 2.定义指针变量的一般形式为 类型名 *指针变量 1,*指针变量 2,; 类型名称为基类型它规定了后面的指针变量中存放的数据类型,*号表明 后面的指针变量 1,指针变量 2等是指针变量,*号在定义时不能省略,否则就 会变成一般变量的定义了。指针变量 1,指针变量 2等称为指针变量名。 3.一个指针变量只能指向同一类型的变量。 4.与指针和指针变量有关的两个运算符 1*指针运算符或称间接访问运算符 2 则 p或 k*p;或 k*都将变量 i 中的值赋给 k。 *p10;或*都能把整数 10 赋给变量 i。这里,等号左边的表达式*p 和* 经过上面的定义和初始化后,a00,a11a99。 2初始化时可以只对一部分元素赋初值。例如 static int a100,1,2,3,4; 定义的数组有 10 个元素,但只对其中前 5 个元素赋了初值,后 5 个元素初值为 0。 3如果想使一个数组的元素值全部为 0,可以用下面的方法 static int a100,0,0,0,0,0,0,0,0,0; 不能用 static int a100*10; 如果对 static 型数组不赋初值,系统会对定义的所有数组元素自动赋以 0 值。 4在对全部数组元素赋初值时,可以不指定数组长度。 3.一维数组的引用方法是 C 语言规定不能一次引用整个数组, 引用时只能逐个元素引用, 数组元素的表示形式为 数组名下标 下标可以是整型常量或整型表达式。如 a0a5a7-a2*3; 9.2 9.2 二维数组的定义、初始化和引用二维数组的定义、初始化和引用 1.二维数组定义的一般形式为 类型说明符 数组名常量表达式常量表达式 C 语言采用上述定义方法,我们可以把二维数组看做是一种特殊的一维数组它的元素 又是一维数组。在 C 语言中,二维数组中元素的排列顺序是先按行存放,再按列存放,即 在内存中先顺序存放第一行的元素,再存放第二行的元素。 2.二维数组的初始化二维数组可以用下面的方法初始化 1分行给二维数组赋初值。如 static int a341,2,3,4,5,6,7,8,9,10,11,12; 以上赋值把第一个花括号内的数据赋给第一行元素,第二个花括号内数据赋给第二元 素,即按行赋值。 2可以将所有的数据写在一个花括号内,按数组排列的顺序对各元素赋值。 3可以对数组的部分元素赋初值。如 static int a341,5,9; 以上赋值的结果是数组第一列的元素分别赋了初值 1,5,9,其余元素的值都是 0。 4如果对二维数组的全部元素都赋初值,则定义数组时对第一维的长度可以不指定, 但第二维的长度不能省。 3.二维数组的引用二维数组的元素可以表示为 数组下标下标 在引用二维数组时,必须是单个元素,不能是整个数组名。下标可以是一个表达式,但 不能是变量。如果下标是一个表达式,注意表达式的值不能超出数组定义的上、下限。 第第 1010 章章 字符串考点归纳字符串考点归纳 10.1 10.1 字符串与字符数组字符串与字符数组 1.字符数组的定义 定义方法与前面介绍的类似,只是将数组定义为字符型即可。例如 char c10; 这里定义了一个包含 10 个元素的字符数组 c。 2.字符数组的初始化 对字符数组初始化,可以采用以下方法 1逐个字符赋给数组中各元素; 2用字符串常量使字符数组初始化。 3.字符串 在 C 语言中,字符串是作为字符数组来处理的,字符串可以存放在字符型一维数组中, 故可以把字符型一维数组作为字符串变量。 字符串常量是用双引号括起来的一串字符。 C 语言中约定用0作为字符串的结束标志, 它占内存空间, 但不计入串的长度, 0的代码值为 0。 系统对字符串常量也自动加一个0作为结束符。 例如c language共有 10 个字 符,但在内存中占 11 个字节,最后一个字节存放0。 4.字符数组的输入输出 1逐个字符输入和输出 在标准输入输出 printf 和 scanf 中使用c 格式描述符; 使用 getchar 和 putchar 函数。例如 fori0;i10;i scanfc, /*或 strigetchar;*/ stri0;/*人为加上串结束标志*/ fori0;i10;i printfc,stri;/*或 putcharstri;*/ 2字符串整体输入输出 在标准输入输出函数 printf 和 scanf 中使用s 格式描述符; 输入形式 char str6; scanfs,str; 其中 str 为字符数组名,代表着 str 字符数组的起始地址,输入时系统自动在每个字 符串后加入结束符0。若同时输入多个字符串,则以空格或回车符分隔。 输入形式 printfs,str; 输字符串时,遇第一个0即结束。但可人为控制输出串所占的域宽如 printf6s,str;/*若字符串中字符多于 6 个,仍将全部输出*/ printf-6s,str;/*只输出前 6 个字符,多余的不输出*/ 使用 gets 和 puts 函数输入输出一行 gets 函数用来从终端键盘读字符,直到遇换行符为止,换行符不属字符串的内容。 调用形式 getsstr; str 为字符数组名或字符指针,字符串输入后,系统自动将0置于串尾代替换行 符。若输入串长超出数组定义长度时,系统报错。 Puts 函数用来把字符串的内容显示在屏幕上。 调用形式 putsstr; str 的含义同上。输出时,遇到第一个0结束并自动换行,字符串中可以含转义 字符。第第 1111 章章 对函数的进一步讨论考点归纳对函数的进一步讨论考点归纳 11.1 11.1 传给传给 mainmain 函数的参数函数的参数 在此之前,我们在编写 main 函数时,其后一对圆括号是空的,没参数。其实,在支持 C 的环境中,可以在运行 C 程序时,通过运行 C 程序的命令行,把参数传送给 C 程序。 11.2 11.2 通过实参向函数传递函数名或指向函数的指针变量通过实参向函数传递函数名或指向函数的指针变量 1.指向函数的指针变量的定义 在 C 语言中函数名代表该函数的入口地址,因此可以定义一种指向函数地址的指针变 量。 2.函数名或指向函数的指针变量作为参考 函数名或指向函数的指针变量可以作为实参传送给函数。 这时, 对应的形参是类型相同 的指针变量。 11.3 11.3 函数的递归调用函数的递归调用 C 语言中的函数可以递归调用, 即 可以直接或间接地自己调用自己。 前者称简单递归, 后者称间接递归。 第第 1212 章章 C C 语言中用户标识符的作用域和存储类考点归纳语言中用户标识符的作用域和存储类考点归纳 12.1 12.1 局部变量和全局变量局部变量和全局变量 在函数内部或复合语句内部定义的变量称为局部变量。 函数的形参属于局部变量。 在函 数外部定义的变量称为全局变量。有时,局部变量也称为内部变量,全局变量也称为外部变 量。 12.2 12.2 变量的存储属性变量的存储属性 自动、静态、寄存器、外部自动、静态、寄存器、外部 ,变量的作用域和生存期,变量的作用域和生存期 C 语言中来说明变量存储属性的关键字有四个auto自动、static静态、 register寄存器、extern外部。 1.局部变量的存储属性 局部变量可以是自动类别用 auto,register 说明,也可以是静态类别用 static 说 明。形参只能是自动存储类别,不允许是 static 类别。 当局部变量未指明类别时, 被自动说明成自动auto变量。 这类局部变量称为自动变量。 其值存放在内存的动态存储区,因此在退出作用域后,变量被自动释放,其值不予保留。 当局部变量说明成寄存器register类型时, 与自动auto变量一样属于自动类别, 所 不同的是此时变量的值保留在 CPU 中的寄存器中。 当变量说明成 static静态类型时,称这样的变量为静态局部变量。在程序运行期间, 它占据一个永久的存储单元,在函数退出后,变量的值仍旧保留。 2.全局变量的存储属性 全局变量都属于静态存储类别,可以用 extern 和 static 对它们进行说明。 当一个文件中要引用另一文件中的全局变量或在全局变量定义前要引用它时,可用 extern 说明。相当于扩大全局变量的作用域。 用 static静态说明的全局变量称为静态全局变量,它仅能由本文件引用,即使在其 文件中用 extern 说明也不能使用,它相当于限制了全局变量作用域的扩展。 12.3 12.3 内部函数和外部函数内部函数和外部函数 1.在 C 语言中,所有的函数在本质上都是外部函数。 2.函数定义时用 extern 进行说明称为外部函数。函数的隐含类别为外部函数,外部函 数可以被其他文件调用。 3.定义函数时用 static 进行说明称为静态函数,也称内部函数。静态函数也是外部函 数,只是它仅局限于它所在的文件,其他文件不能调用。 第第 1313 章章 编译预处理和动态存储分配考点归纳编译预处理和动态存储分配考点归纳 13.1 13.1 宏定义宏定义 不不带参数的宏定义,带参数的宏定义带参数的宏定义,带参数的宏定义 1.编译预处理就是对 C 源程序进行编译前, 由编译预处理程序对预处理命令行进行 处理的过程。 2.C 语言中,凡是以开头的行,都称为编译预处理命令行。C 语言中的编译预 处命令有 define,undef,include,if,else,elif,endif,ifdef,ifndef,line,pragma,er ror。 这些预处理命令组成的预处理命令行必须在一行的开头以号开始, 每行的未尾不 得加;号,以区别于 C 语句、定义和说明语句。 3.不带参数的宏定义命令的一般形式为 define 标识符 字符串 定义中的标识符为用户定义的标识符,称为宏名。在预编译时,C 预编译程序将出 现的宏名替换成字符串的内容,这一过程也称为宏展开。 4.带参数的宏定义命令的一般形式为 define 宏名形式参数 字符串 定义中的字符串应包含括号中所指定的形式参数。注意宏名与括号之间不要加空 格,否则就成为不带参数的宏定义了。 5.预编译时,遇到带实参的宏名,则按命令行中指定的字符串从左到右进行置换,原则 是遇到实参则以实参代替,非形参字符原样保留,从而成展开后的内容。 13.2 13.2 “文件包含”处理“文件包含”处理 1.文件包含的一般形式为 include头文件名 include 头文件名一般由 C 语言提供,也可以是用户自己编写的,头文件通常用.h 作为后缀。 2.当头文件名用双引号括起来时, 系统首先在使用此命令的文件所在的目录中查找被包 含的文件,找不到时,再按系统指定的标准方式检索其它目录;当头文件名用尖括号括起来 时,则直接按系统指定的标准检索方式查找被包含的文件。 3.预编译时,将被包含文件的内容全部复制到包含文件中,这就是文件包含处理。 13.3 13.3 条件编译条件编译 C 语言中的条件编译命令可对源程序代码的各部分有选择地进行编译。 条件编译主要有 如下 3 种使用格式 使用格式 1 ifdef 标识符 程序段 1 else 程序段 2 endif 使用格式 2 ifndef 标识符 程序段 1 else 程序段 2 endif 使用格式 3 if 表达式 程序段 1 else 程序段 2 endif 使用格式 1 表示如果已定义了 “标识符” , 则编译 “程序段 1”, 否则编译 “程序段 2” ; 使用格式 2 表示如没有定义了“标识符”,则编译“程序段 1”,否则编译“程序段 2”; 使用格式 3 表示如“表达式”的值为“真”时,则编译“程序段 1” ,否则编译“程序段 2”。 第第 1414 章章 结构体、共同体和用户定义类型考点归纳结构体、共同体和用户定义类型考点归纳 14.1 14.1 结构体与共用体类型数据的定义方法和引用方法结构体与共用体类型数据的定义方法和引用方法 1.结构体类型数据的定义方法可以采用下面三种方法来定义 1先定义结构体类型再定义变量名 先定义一个结构体类型,一般形式为 struct 结构体名 成员列表; 2在定义类型的同时定义变量一般形式为 struct 结构体名 成员列表 变量名列表; 3直接定义结构类型变量一般形式 struct 成员列表 变量名列表; 即不出现结构体名。 2.结构体类型变量的引用 在定义了结构体变量后, 可以采用下列方法引用结构体类型 的变量 结构体变量名.成员名 这里.是成员分量运算符,它在所有的运算符中优先级最高。 3.共用体类型变量的定义形式为 union 共用体名 成员列表 变量列表; 4.共用体变量的引用可以用下面的形式引用共用体变量 共用体变量名.成员名 14.2 14.2 用指针和结构体构成链表,单向链表的建立、输出、删除与插入用指针和结构体构成链表,单向链表的建立、输出、删除与插入 1.链表是一种常用的重要的数据结构,它是动态地进行存储分配的一种结构。 2.所谓建立链表是指从无到有地建立起一个链表, 即一个一个地输入各结点数据, 并建 立起前后相链的关系。 3.所谓输出链表就是将链表各结点的数据依次输出。 4.所谓删除链表事实上就是删除链表中的某个结点。 5.所谓插入链表就是在链表中某个位置插入一个或几个结点。 第第 1616 章章 文件考点归纳文件考点归纳 16.1 16.1 文件类型指针文件类型指针FILEFILE 类型指针类型指针 C 语言中的文件分缓冲型文件和非缓冲型文件两种,此处只讨论缓冲型文件。对于缓冲 型文件, 每个被使用的文件都在内存中开辟一个区, 用来存放文件的有关信息如文件名字、 文件状态及文件当前位置等。这些信息保存在有关结构体类型的变量中。该结构体类型由 系统定义,取名为 FILE。 16.2 16.2 文件的打开与关闭文件的打开与关闭,fclose,fclose 1.和其他高级语言一样,C 语言对文件读写之前应该打开该文件,在使用结束之后 应关闭该文件。 2.C 语言中打开文件用 函数,函数的调用方式通常为 FILE *fp; fp文件名,使用文件方式; 文件的操作方式如下所示 文件操作方式 操作方式 属性 操作方式的功能 rrr 只读 为输入打开一个字符文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值