1、链表是一种常见的重要的数据结构。它是动态的进行存储分配的一种结构。 2、处理动态链表所需的函数: Malloc:在内存的动态存储区内分配一个长度为“size”的连续空间。此函数的值(即“返回值”)是指向分配域起始地址的指针。 Calloc:在内存的动态存储区内分配n个长度为“size”的连续空间。函数返回一个指向分配域的起始地址的指针。 Free:释放由P指向的内存区,是这部分内存区能被其它变量使用。P是指向最近一次调用calloc或malloc函数时返回的值。无返回值。 3、共同体(union):几个不同的变量共占同一段内存的结构。 4、结构体与共同体: 结构体变量所占内存长度是各成员占的长度之和。每个成员分别占有其自己的内存单元。 共同体变量所占的内存长度等于最长的成员的长度。 5、共同体特点: A:同一个内存段可以存储几种不同类型的成员,但在每一瞬间只能存放其中一种,而不是几种。即,每一瞬间只有一个成员起作用,其他成员不起作用,即不是同时都存在和起作用。 B:共同体变量中其作用的成员是最后一次存放的成员。 C:共同体变量地址和它的各成员地址都是同一地址。 D:不能对共同体变量名赋值,也不能企图引用变量名来取得一个值,又不能在定义共同体变量时对它初始化。 E:不能把共同体变量作为函数参数,也不能使函数带回共同体变量,但可以使用指向共用体变量的指针(与结构体变量这种用法相似)。 F:共同体类型可以出现在结构体类型定义中,也可以定义共同体数组。反之,也可以。 6、所谓“枚举“是指将变量的值一一列举出来,变量的值只限于列举出来的值的范围内。(enum) 7、c语言中,对枚举元素做常量处理,故称枚举常量。它们不是变量,不能对它们赋值。 8、枚举值的比较规则是按其在定义时的顺序号比较的。如果定义时没有人为定义则第一个枚举元素的值认作0. 9、一个整数不能直接赋给一个枚举变量。 10、Typedef可以声明各种类型名,但不能用来定义变量。用Typedef可以声明可以将数组类型与数组变量分离开来。,利用数组类型定义多个数组变量。同样适用于字符串类型、指针类型等。注意与#define(简单替换)的区别。 Typedef可以只是对已经存在的类型增加一个类型名,而没有创造新的类型。 11、位运算: A:位运算符中除“~“外,均为二目(元)运算符。 B:运算量只能是整型或字符型的数据,不能为实型数据。&|^~<<>>:分别是:按位“与、或、异或、取反、左移、右移” 12、位段:C语言允许在一个结构体中以位单位来指定其成员所占内存长度,这种以位为单位的成员称为“位段或位域”。利用位段能够用较少的位数存储数据。 A:位段成员的类型必须指定为unsigned或int类型。 B:一个位段必须存储在同一存储单元中,不能跨两个单元。如果第一个单元空间不能容纳下一个位段,则该空间不用,而从下一个单元起存放该位段。 13、打开一个文件时,通知编译系统三个信息: A:需要打开的文件名;B:使用文件的方式(读还是写?)C:让那一个指针变量指向被打开的文件。 关于文件的处理指令: Fopen:文件的打开;Fclose:文件的关闭;Fputc:把一个字符写到磁盘文件上;Fgetc:从指定的文件读入一个字符,该文件必须是以读或写的方式打开的。 Fread、Fwrite和Fputc、Fgetc的不同在于针对的对象,前者是针对数据块,而后者是针对一个字符。 Fprintf、Fscanf与printf、scanf相仿,不同的是后者的读写对象不是终端而是磁盘文件。 Getw、putw用来对磁盘读写一个字(整数)。 Puts、gets从指定文件读写一个字符串。 14、文件的定位: Rewind:使位置指针重新返回文件的开头,没有返回值。 Fseek:是想改变文件的位置指针。 Ftell:得到流式文件的当前位置,用相对于文件开头的位移量来表示。 Ferror:检查输入输出函数调用中的错误。 Clearerr:使文件错误标志和文件结束标志置位0. 2008-4-10 A.M. 1、你犯了这样的错误吗? A:忘记定义变量; B:输入输出的数据类型与所用格式说明符不符; C:未注意整型数据的数值范围; D:在输入语句scanf中忘记使用变量地址符; E:输入数据的格式与要求不符;(两次输入的数据应该用空格、Tab键、回车符来分隔); F:把“=”(赋值运算符)作为“等于”运算符; G:语句后面漏分号; H:在不该加分号的地方加分号; I:多应该有花括号的复合语句,忘记加花括号; J:括号不配对; K:在用标识符时,忘记了大写字母和小写字母的区别; L:引用数组元素时,误用了圆括号; M:在定义数组时,将定义的“元素个数”误认为是“可使用的最大下标值”; N:对二维和多维数组的定义和引用的方法不对; O:误以为数组名代表数组中全部元素; P:混淆字符数组与字符指针的区别; Q:在引用指针变量之前没有对它赋予确定的值; R:switch语句的分支中漏写“break”语句; S:混淆字符与字符串的表示形式; T:使用自加(++)和自减(--)运算符时出的错误; U:所调用的函数在调用语句之后才定义; V:对函数声明与函数定义不匹配; W:在需要加头文件时,没有用“#include”命令去包含头文件; X:误认为形参值的改变会影响实参的值; Y:函数的形参与实参类型不一致; Z:不同类型的指针混用; a:没有注意函数的求值顺序; b:混淆变量名与指针变量的区别; c:混淆结构体类型与结构体变量的区别,对一个结构体类型赋值; d:使用文件时忘记打开,或打开方式与使用情况不匹配。 2、程序错误情况:语法错误、逻辑错误、运行错误。 3、程序调试步骤:a:先进性人工检查(静态检查);b:上机调试;c:语法错误纠正后,连接得到可执行的目标程序;d:在对比流程图纠正逻辑错误。 |
http://hi.baidu.com/c407jjw/blog/item/c461a4098cbc75ca3bc76382.html