自学考试C程序设计C笔记15

上传人:大米 文档编号:478082227 上传时间:2022-09-25 格式:DOC 页数:106 大小:338.50KB
返回 下载 相关 举报
自学考试C程序设计C笔记15_第1页
第1页 / 共106页
自学考试C程序设计C笔记15_第2页
第2页 / 共106页
自学考试C程序设计C笔记15_第3页
第3页 / 共106页
自学考试C程序设计C笔记15_第4页
第4页 / 共106页
自学考试C程序设计C笔记15_第5页
第5页 / 共106页
点击查看更多>>
资源描述

《自学考试C程序设计C笔记15》由会员分享,可在线阅读,更多相关《自学考试C程序设计C笔记15(106页珍藏版)》请在金锄头文库上搜索。

1、第一章 认识C的对象1.1初识C的函数和对象1、混合型函数C+以 .cpp为文件扩展名,有且只有一个名为main的主函数,因保留了这个面向过程的主函数,所以被称为混合型语言。2、注释方式从“/*”开始,到“*/”结束,如:/* */从“/”开始到本行结束,如: /3、输入输出对象提取操作:用提取操作符“”从cin输入流中提取字符,如: cin a.x; 插入操作:用插入操作符“”向cout输出流中插入字符,如: cout “we”; cout endl; 使用标准输入(键盘输入)cin及标准输出(屏幕输出)cout前,要在主函数前使用include 将C标准输入输出库头文件iostream将其

2、包括。换行操作:用语句coutendl;或cout“n”;实现,其中endl可以插在流的中间。如:couta.xendla.yendl;4、使用命名空间C相比C而言,可以省略“ .h”标识头文件,但必须使用语句using namespace std;来让命名空间中的对象名称曝光。因此一般的程序都要具有下面的两条语句:include /包含头文件using namespace std; /使用命名空间注意C库中代替C库中头文件的正确名称,例如下面两个语句效果一样:include include using namespace std;5、对象的定义和初始化定义对象包括为它命名并赋予它数据类型,一

3、般即使初值只用来表示该对象尚未具有真正意义的值,也应将每个对象初始化。C中利用构造函数语法实现初始化,如:Int z(0); /等同于int z0;6、函数原型及其返回值C使用变量和函数的基本规则都是:先声明,后使用。变量有时也可边声明边使用,但必须声明,否则出错。比如对函数的调用,要在主函数之前先对调用的函数进行原型声明,如:int result (int,int); 它向编译系统声明,后面有一个result函数,该函数有两个整型类型的参数,函数返回整型值。函数声明时,除了默认参数(需给出默认参数的默认值)和内联函数(需给出函数体及其内语句)外,不需给出参数的变量名称,如果给出,效果也一样,

4、如:int result (int a,int b); 和上面的声明效果一样。除构造函数与析构函数外,函数都需要有类型声明。如int main() ,指出main是整数类型,返回值由return后面的表达式决定,且表达式的值必须与声明函数的类型一致。如果函数确实不需要返回值,还可用void标识,一旦使用void标识,函数体内就不再需要使用return语句,否则会编译出错,但可使用return;语句。C函数有库函数(标准函数,引用时函数名外加)和自定义函数(引用时函数名外加“ ”)两类。7、const(常量)修饰符及预处理程序const修饰符:用于定义符号常量。C中一般使用宏定义“define”

5、定义常量,而C中除此外,建议使用const代替宏定义,用关键字const修饰的标识符称为符号常量。因const是放在语句定义之前的,因此可以进行类型判别,这比用宏定义更安全一些。如下面两个语句是等同的,但是后者可以比前者避免一些很难发现的错误。difine BOFSIZE 100const int BUFSIZE 100;常量定义也可使用构造函数的初始化方法,如:const int k(2); /等同于const int k2;因被const修饰的变量的值在程序中不能被改变,所以在声明符号常量时,必须对符号常量进行初始化,除非这个变量是用extern修饰的外部变量,如:const int d;

6、 const int d=2; extern const int d;const的用处不仅是在常量表达式中代替宏定义,如果一个变量在生存期内的值不会改变,就应该用const来修饰这个变量,以提高程序安全性。预处理程序C的预处理程序不是C编译程序的一部分,它负责在编译程序的其他部分之前分析处理预处理语句,为与一般的C语句区别,所有预处理语句都以位于行首的符号“”开始,作用是把所有出现的、被定义的名字全部替换成对应的“字符序列”。预处理语句有三种:宏定义、文件包含(也成嵌入指令)和条件编译。文件包含是指一个程序把另一个指定文件的内容包含进来,书写时可以使用引号也可以使用尖括号,前者引用自己定义的包

7、含文件,如:include “E:progmyfile.h” ,后者引用系统提供的包含文件,如标准输入输出是定义在标准库iostream中的,引用时要包括以下两条语句:include /包含头文件using namespace std; /使用命名空间8、程序运行结果9、程序书写格式C的格式和C一样,都很自由,一行可以写几条语句,但也要注意以下规则,增加可读性:括号紧跟函数名后面,但在for和while后面,应用一个空格与左括号隔开;数学运算符左右各留一个空格,以与表达式区别;在表示参数时,逗号后面留一个空格;在for、dowhile和while语句中,合理使用缩进、一对花括号和空行; 适当增

8、加空行和程序注释以增加可读性;太长的程序分为两行或几行,并注意选取合适的分行和缩进位置。1.2认识C面向过程编译的特点一、使用函数重载C允许为同一个函数定义几个版本,从而使一个函数名具有多种功能,这称为函数重载。假设有一个函数max,分别具有以下函数原型:int max(int,int); /2个整型参数的函数原型int max(int,int,int);/3个整型参数的函数原型只要分别为不同参数的max编制相应的函数体,就可以实现各自的功能。二、新的基本数据类型及其注意事项1、void是无类型标识符,只能声明函数的返回值类型,不能声明变量。2、C还比C多了bool(布尔)型。3、C只限定in

9、t和short至少要有16位,而long至少32位,short不得长于int,int不能长于long,VC6.0规定int使用4字节,这与C使用2字节不同。4、地址运算符“&”用来取对象存储的首地址,对于数组,则数组名就是数组的首地址。如:int x56;定义x,VC6.0使用4个字节存储对象56,假设存放的内存首地址用十六进制表示为006AFDEC,则语句cout &x;自动使用十六进制输出存储的首地址006AFDEC。5、C中的常量分三种,第一种为符号常量;第二种为整数常量,有4种类型,分别为十进制、长整型、八进制、十六进制,并用前缀和后缀进行分类标识;第三种为浮点常量,有三种类型,分别为

10、float型、long float型、double型,并用后缀进行分类识别。 符号常量 float型:后缀F(f),如3.2f、0.002f、52.48f浮点常量 long float型:后缀L(l),如0.2L、4.5L、52.48L常量 double型:无后缀,如3.0、12.3、0.002 长整型:后缀L(l),如-456L、0L、2145857852L整数常量 十进制:无后缀,如-32、0、123 八进制:前缀O(o),如O123、O5、O32737 十六进制:前缀OX(ox),如0x15,0x1A,0x1f16、C与C一样,也使用转义序列。如:0表示ASCII码值为零的空字符(NUL

11、L),101表示字符A。三、动态分配内存1、在使用指针时,如果不使用对象地址初始化指针,可以自己给它分配地址。对于只存储一个基本类型数据的指针,申请方式如下:new 类型名size /申请可以存储size个该数据类型的对象不再使用时,必须使用delete 指针名;来释放已经申请的存储空间。如:double *p; /声明double型指针pnew double3 /分配3个double型数据的存储空间delete p; /释放已申请的存储空间2、C必须在可执行语句之前集中声明变量,而C可以在使用对象时再声明或定义。3、C为结构动态分配内存一般格式为:指针名new 结构名; /分配delete

12、指针名; /释放例如给书中例1.1的Point结构指针分配内存:pnew Point;当不再使用这个空间时,必须使用delete p;释放空间。四、引用1、引用简单的说,就是为现有的对象起个别名,别名的地址与引用对象的地址是一样的。引用的声明方式为: 数据类型 & 别名对象名; ,注意对象在引用前必须先初始化,另外声明中符号“&”的位置无关紧要,比如 int& ax; 、int & ax; 和int &ax; 等效。例:int x56; /定义并初始化xint & ax; /声明a是x的引用,二者地址相同int &ra; /声明r是a的引用,二者地址相同r25; /改变r,则a和x都同步变化2

13、、所谓“引用”,就是将一个新标识符和一块已经存在的存储区域相关联。因此,使用引用时没有分配新的存储区域,它本身不是新的数据类型。可以通过修改引用来修改原对象,但是不能有空引用,在程序中必须确保引用是和一块正确的存储区域关联。引用通常用于函数的参数表中或作为函数的返回值。前者因为使用引用作为函数参数不产生临时对象,可提高程序执行效率和安全性(4.4.3),后者则是因为引用作为函数返回值可用于赋值运算符的左边。3、引用实际上就是变量的别名,使用引用就如同直接使用变量一样,引用与变量名在使用的形式上完全一样,引用只是作为一种标识对象的手段。但要注意,可以声明指向变量或引用的指针,如:int *p=&

14、x; int &ax; int * p&a;也可以声明指针对指针的引用,如:int * & p2p1; (式中p1、p2是指针, * 声明p2是指针,&声明p2是p1的引用);但不能声明指针对变量的引用,如:int * &P&x; ;不能声明引用的引用,如:int & & rx; ;也不能直接声明对数组的引用。 4、引用的作用与指针有相似之处,它会对内存地址上存在的变量进行修改,但它不占用新的地址,从而节省开销。二者除使用形式不同,本质也不同:指针是低级的直接操作内存地址的机制,可由整型数强制类型转换得到,功能强大但易出错;引用则是较高级的封装了指针的特性,不直接操作内存地址,不可由强制类型转换而得,安全性较高。5、虽然不能直接定义对数组的引用,但可以通过typedef来间接的建立对数组的引用。如:typedef

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号