令将这个源文件包含进来,这样可以避免在每个新程序中都要重新键入这些内容。 3.条件编译
顾名思义满足条件时进行编译,为了解决程序移植问题,C语言提供了条件编译命令,它能使源程序在不同的编译环境下生成不同的目标代码文件。条件编译命令有3种形式。
第八章 指针知识点
1.什么是指针和指针变量?
指针就是内存地址,因为通过“地址”可以找到变量,所以内存“地址\形象的称为指针。
指针变量就是存地址的变量。在C语言中用一个变量存另一个变量的地址,那么就称这个变量为指针变量,指针变量的值就是地址。通常指针变量被简称为指针。
指针变量是有类型的,即指针值增1表示指向下一个数据,如整型数据在内存中占两个字节,它的指针变量增1是增两个字节。如实型数据在内存中占4个字节,它的指针变量增1是增4个字节。 2.怎样定义指针变量?
定义形式为:数据类型*指针变量名1,*指针变量名2……; 3.指针的有关运算
指针为内存地址是整数,可以进行一些算术运算、关系运算、赋值运算、特殊运算等,但要注意运算代表的实际意义。
4.指向数组的指针变量
(1)指向数组元素的指针变量定义形式为:inta\\[10\\]; int*p=a;
(2)指向一维数组的指针变量 定义形式为:inta\\[3\\]\\[4\\]; int(*p)\\[4\\]; p=a;
(3)指向字符串的指针变量
定义形式为: char*p=\字符序列\;
C语言中的字符串是以隐含形式的字符数组存放的,定义了指针变量p并不是将整个字符串都存放在p中了,而p中存放的是字符串的首地址。 5.指向函数的指针变量
一个函数在编译时被分配一个入口地址,这个地址就是函数的指针,可以用一个指针变量指向它。指向函数的指针变量定义形式为: 数据类型(*指针变量名); 6.指针变量做函数的参数
(1)指针作函数的参数可以传送地址,如数组的首地址,函数的入口地址等。 (2)指针作函数的参数也可以用地址方式传送数据。 7.返回值是指针的函数
即函数的返回值是内存的地址,利用这种方法可以将一个以上的数据返回给函数的调用者。定义形式如下:
数据类型*函数名(形参表) 8.指针数组
定义形式为:数据类型*数组名\\[数组长度\\];
数组中的每个元素都是指针类型的数据,这种数组被称为指针数组。 9.指向指针的指针
定义形式为:数据类型**指针变量名;
指向指针数据的指针变量称为指向指针的指针。 10.main函数的形参
6
main函数可以带两个形参,如: main(argc,argv) intargc;
char *argv\\[\\]; { …… }
11.指向结构体的指针变量
结构体变量的指针就是该变量所占据的内存段的首地址。指向结构体的指针变量定义形式为:struct结构体类型名*指针变量名; 12.指向共用体的指针变量
共用体变量的指针就是该变量所占据的内存段的首地址。指向共用体的指针变量定义形式为:union共用体类型名*指针变量名;
替换了的字符时(这里为正中间的字符\,原来的字符己不复存在。
第九章 结构体与共用体知识点
结构体类型是C语言的一种构造数据类型,它是多个相关的不同类型数据的集合,相当于其它高级语言中的记录。 1.结构体类型定义
结构体类型的形式为: struct结构体类型名 { 数据类型成员名1; ...
数据类型成员名n; }
2.结构体变量的定义
结构体变量有三种定义形式:
(1)先定义结构体类型,后定义结构体变量。 (2)定义结构体类型的同时定义结构体变量。 (3)不定义结构体类型名,直接定义结构体变量。 3.结构体变量的引用
(1)结构体变量的初始化:许多C版本规定对外部或静态存储类型的结构体变量可以进行初始化,而对局部的结构体变量则不可以,新标准C无此限制,允许在定义时对自动变量初始化。
(2)结构体成员的引用:由于C语言一般不允许对结构体变量的整体引用,所以对结构体的引用只能是对分量的引用,结构体变量中的任一分量可以表示为:结构体变量名·成员名 4.结构体与数组
C语言中数组的成员可以是结构体变量,结构体变量的成员也可以是数组。 结构体数组有三种定义形式:
(1)先定义结构体类型,后定义结构体数组。 (2)定义结构体类型的同时定义结构体数组。 (3)不定义结构体类型名,直接定义结构体变量。 5.结构体与指针
一方面结构体变量中的成员可以是指针变量,另一方面也可以定义指向结构体的指针变量,指向结构体的指针变量的值是某一结构体变量在内存中的首地址。 结构体指针的定义形式:struct结构体类型名*结构体指针变量名。 由结构体指针引用结构体成员的方法
7
6.用指针处理链表
结构体的成员可以是指针类型,并且这个指针类型就是本结构体类型的,这样可以构造出一种动态数据结构—成为链表。所谓动态数据就是指在编译时不能确定数据量的多少,而是在程序执行时才确定的数据,动态数据可以比较方便的进行数据插人或删除等操作。 7.结构体与函数
结构体变量的成员可以作函数的参数、指向结构体变量的指针也可以作函数的参数。虽然结构体变量名也可以作为函数的参数,将整个结构体变量进行传递,但一般不这样做,因为如果结构体的成员很多,或者有些成员是数组,则程序运行期间,将全部成员一个一个的传递,既浪费时间,又浪费空间,开销太大。 8.结构体与共用体
结构体变量中的成员可以是共用体,共用体变量中的成员可以是结构体。 共用体
为了节省存储空间,C语言允许将几种不同类型的数据存放在同一段内存单元,它们共用一个起始地址,称做共用体。 1.共用体类型定义 union共用体类型名 { 数据类型成员名1; ...
数据类型成员名n; }
2.共用体变量定义
(1)先定义类型,后定义变量。 (2)定义类型的同时定义变量。 (3)不定义类型名,直接定义变量。 3.共用体变量的引用
(1)共用体变量不能整体引用,只能引用其成员,形式为:共用体变量名·成员名 (2)共用体变量的成员不能初始化,因为它只能放一个数据。 (3)共用体变量存放的数据是最后放入的数据。 (4)共用体变量的长度是最大的成员的长度。
(5)可以引用共用体变量的地址、各个成员的地址,它们都是同一个地址。
(6)共用体变量不能当函数的参数或函数的返回值,但可以用指向共用体变量的指针作函数的参数。 (7)共用体变量的成员可以是数组,数组的成员也可以是共用体变量。
第十章 位运算知识点
位运算就是按二进制位进行操作的运算,运算的对象只能是整型或字符型,不能是实型。不同长度的变量进行位运算,系统会自动右对齐,而左端的不齐部分,对于无符号数左端补满0,对于有符号数则:正数左端补满0,负数左端补满1。
第十一章 文件知识点
操作系统是以文件为单位对数据进行管理的,任何一种计算机高级语言都要有和磁盘文件打交道的能力,否则该语言的功能充其量是算一算、显示显示而已。在C语言中没有单独的文件操作语句,所有对文件的操作都是通过库函数来完成的,所以本章的重点是学会使用有关文件操作的库函数。 1.文件的基本概念 2.文件类型指针 3.文件的操作
8