C基础知识课件.ppt

上传人(卖家):三亚风情 文档编号:3293486 上传时间:2022-08-17 格式:PPT 页数:62 大小:1.05MB
下载 相关 举报
C基础知识课件.ppt_第1页
第1页 / 共62页
C基础知识课件.ppt_第2页
第2页 / 共62页
C基础知识课件.ppt_第3页
第3页 / 共62页
C基础知识课件.ppt_第4页
第4页 / 共62页
C基础知识课件.ppt_第5页
第5页 / 共62页
点击查看更多>>
资源描述

1、Adobe photoshopAdobe Acrobat MayaJava虚拟机内核虚拟机内核 Google:网络搜索引擎网络搜索引擎 JPL(Jet Propulsion Lab,NASA):火星探测火星探测器自动驱动系统器自动驱动系统(包括场景分析和路线预测包括场景分析和路线预测)以以及很多地面支持软件。及很多地面支持软件。C+C+,运行速度快,功能强大,类库需要手动选择,运行速度快,功能强大,类库需要手动选择,编译型编译型跨平台跨平台JAVA JAVA 运行速度缓慢,需要虚拟机环境,完全运行速度缓慢,需要虚拟机环境,完全跨平跨平台台,类库丰富,功能中庸,无法进行底层的高级操,类库丰富,功

2、能中庸,无法进行底层的高级操作作C#C#,运行速度中等,需要虚拟机环境,即将,运行速度中等,需要虚拟机环境,即将跨平台跨平台,类库丰富,功能与略比类库丰富,功能与略比JAVAJAVA多,主要是能与操作系多,主要是能与操作系统底层交互统底层交互 Java Java和和C#C#正在不断蚕食着正在不断蚕食着C+C+的地盘。也的地盘。也许许JavaJava和和C#C#的狂潮终将迫使的狂潮终将迫使C+C+回归本位回归本位 回回到它有着根本性优势的开发领域:到它有着根本性优势的开发领域:低级系统程序设计、高级大规模高性能应低级系统程序设计、高级大规模高性能应用设计、嵌入式程序设计、通用程序设计以及用设计、

3、嵌入式程序设计、通用程序设计以及数值科学计算等。数值科学计算等。教材教材 Visual c+Visual c+面向对象与可视化程序设计面向对象与可视化程序设计 课程内容课程内容 第一篇基础知识第一篇基础知识 第一章第一章 Visual c+2008Visual c+2008简介简介 第二章第二章 c+c+基础知识基础知识 第三篇第三篇 MFCMFC开发开发 第八章第八章 MFCMFC基础知识基础知识 第九章第九章 WindowsWindows标准控件在可视化编程中的应用标准控件在可视化编程中的应用 第十章第十章 在在MFCMFC中创建应用程序的资源中创建应用程序的资源 第四篇第四篇 综合应用举

4、例综合应用举例 第十三章第十三章 数据库应用程序的开发数据库应用程序的开发 学时安排学时安排 理论理论 4040 上机上机1616 学习方法学习方法 学习过程中注重实践环节学习过程中注重实践环节 每个例题都需要自己动手编写程序每个例题都需要自己动手编写程序 每章的实验任务必须完成每章的实验任务必须完成 尽可能多做习题尽可能多做习题考核方式考核方式 考试考试70%70%平时平时+实验实验 30%30%学习编程的秘诀是:编程,编程,再编程;学习编程的秘诀是:编程,编程,再编程;C+C+语言和语言和C+C+的集成开发环境要同时学习的集成开发环境要同时学习和掌握和掌握 。从开始养成良好的编程习惯。从开

5、始养成良好的编程习惯。代码排版清晰,容易阅读代码排版清晰,容易阅读 变量命名规范变量命名规范 编写编写C+C+风格的程序风格的程序编写编写C+C+风格的程序风格的程序 1)1)严格采用阶梯层次组织代码严格采用阶梯层次组织代码 2)2)对变量定义尽量位于开始位置对变量定义尽量位于开始位置 3)3)命名规则命名规则 指针变量基本原则为指针变量基本原则为:“p”+“p”+变量类型前变量类型前缀缀+命名命名 如如 float float*型应该表示为型应该表示为pfStatpfStat 静态变量用静态变量用s_s_开头开头 成员变量用成员变量用m_m_开头开头 对枚举类型对枚举类型(enum)(enu

6、m)中变量要求用枚举变量中变量要求用枚举变量或其缩写做前缀并且要求用大写或其缩写做前缀并且要求用大写 参考文献参考文献 1 1、钱能主编,、钱能主编,C+C+程序设计教程程序设计教程,清华大,清华大学出版社学出版社 2 2、面向对象的程序设计语言面向对象的程序设计语言C+C+陈志泊等编陈志泊等编 人民邮电出版社人民邮电出版社 3 3、http:/ vc+vc+从入门到精通开发详解视频教程从入门到精通开发详解视频教程答疑答疑:联系方式:联系方式: E E栋栋322322办公室办公室第一章第一章 c+基础知识基础知识美国美国AT&T贝尔贝尔实验室的实验室的Bjarne Stroustrup博士博士

7、在在20世纪世纪80年年代初期发明并实代初期发明并实现了现了C+1.1 C+1.1 C+语言的发展历程语言的发展历程C+3.0C+2.0C+1.0带类的带类的CCC+4.0ANSI C+89年年,增加类的多继承增加类的多继承91年增加模板年增加模板增加异常处理、增加异常处理、名字空间、运行名字空间、运行时类型识别时类型识别97年年,成为成为标准标准 C+C+语言发展大概可以分为三个阶段:语言发展大概可以分为三个阶段:第一阶段第一阶段 80年代到年代到1995年年这一阶段这一阶段C+语言基本上是传统类型上的面向对象语言,语言基本上是传统类型上的面向对象语言,并且凭借着接近并且凭借着接近C语言的效

8、率,在工业界使用的开发语言语言的效率,在工业界使用的开发语言中占据了相当大份额;中占据了相当大份额;第二阶段第二阶段 1995年到年到2000年年这一阶段由于标准模板库这一阶段由于标准模板库(STL)和后来的和后来的Boost等程序库等程序库的出现,泛型程序设计在的出现,泛型程序设计在C+中占据了越来越多的比重中占据了越来越多的比重性。当然,同时由于性。当然,同时由于Java、C#等语言的出现和硬件价格等语言的出现和硬件价格的大规模下降,的大规模下降,C+受到了一定的冲击;受到了一定的冲击;第三阶段第三阶段 2000年至今年至今由于以由于以Loki、MPL等程序库为代表模板元编程的出现,等程序

9、库为代表模板元编程的出现,C+出现了发展历史上又一个新的高峰,这些新技术的出现以及出现了发展历史上又一个新的高峰,这些新技术的出现以及和原有技术的融合,使和原有技术的融合,使C+已经成为当今主流程序设计语言已经成为当今主流程序设计语言中最复杂的一员。中最复杂的一员。1.21.2一个简单一个简单C+C+程序程序1 1、控制台应用程序、控制台应用程序 例例 求从键盘上输入的两个浮点数的和求从键盘上输入的两个浮点数的和。#include#include#include using namespace std;using namespace std;void main()void main()doub

10、le x,y;double x,y;coutEnter two double number:;coutxy;cinxy;double z=x+y;double z=x+y;coutx+y=zendl;coutx+y=zendl;执行该程序,屏幕上出现如下提示信息:执行该程序,屏幕上出现如下提示信息:Enter two double number:3.456 Enter two double number:3.456 71.371.3 运行结果为:运行结果为:x+y=74.7x+y=74.7 1 1)预处理命令)预处理命令#include#include 预处理命令是包含命令,其功能是把一个文本

11、文预处理命令是包含命令,其功能是把一个文本文件的内容包含到该命令处。上述程序以件的内容包含到该命令处。上述程序以#打头,表明该打头,表明该行是一个预处理命令;行是一个预处理命令;是命令的参数,它是命令的参数,它指出了要包含的那个文件的文件名是指出了要包含的那个文件的文件名是iostreamiostream。2 2)头文件)头文件 以以.h.h作为扩展名,包含有对象和函数说明的文件称为作为扩展名,包含有对象和函数说明的文件称为头文件。在上述程序中,用头文件。在上述程序中,用C+C+流完成输入、输出的操作,流完成输入、输出的操作,其中,其中,coutcout是输出流对象,是输出流对象,cincin

12、是输入流对象;是输入流对象;和和endlendl都是特殊函数。这些对象和函数是系统提供的,但必须先都是特殊函数。这些对象和函数是系统提供的,但必须先说明后使用,它们的说明就在系统提供的头文件说明后使用,它们的说明就在系统提供的头文件iostream.hiostream.h中。中。3)stdafx3)stdafx Stdafx:standard Application Framework Stdafx:standard Application Framework Extensions Extensions 标准应用程序框架的扩展标准应用程序框架的扩展 没有函数库,只是定义了一些没有函数库,只是定

13、义了一些环境参数,使得编译出来的程序能在环境参数,使得编译出来的程序能在3232位位的操作系统环境下运行。的操作系统环境下运行。4)using namespace std4)using namespace std std std 是一个命名空间。不同的命名空间是一个命名空间。不同的命名空间可以有相同的类名被定义可以有相同的类名被定义 。比如比如A BA B两个班都有叫张三的人两个班都有叫张三的人,你要使你要使用用A A班的张三班的张三,必然要先指名是必然要先指名是A A班这个名字空班这个名字空间间(namespace),(namespace),然后你对张三的所有命令才然后你对张三的所有命令才能

14、达到你的预想能达到你的预想,不会叫错人不会叫错人 所谓命名空间,是一种将程序库名称封所谓命名空间,是一种将程序库名称封装起来的方法,它就像在各个程序库中立起装起来的方法,它就像在各个程序库中立起一道道围墙。一道道围墙。5)5)输入和输出输入和输出 程序要求用户提供信息的过程称为程序程序要求用户提供信息的过程称为程序的输入。程序向用户发出一些信息的过程称的输入。程序向用户发出一些信息的过程称为程序的输出。为程序的输出。C+C+程序的输入操作是由系统提供的程序的输入操作是由系统提供的标准输标准输入流对象入流对象cincin来完成的。来完成的。C+C+的输出操作是由系统提供的的输出操作是由系统提供的

15、标准输出流标准输出流对象对象coutcout来完成的。来完成的。cincin与与coutcout说明说明用来取代用来取代scanfscanf和和printfprintf,更安全、更方,更安全、更方便。便。1 1 格式控制符与输出数据的类型不一致格式控制符与输出数据的类型不一致2 scanf()2 scanf()的第二个参数应是一个指针参数的第二个参数应是一个指针参数,以上错误,以上错误C C编译器不能检查出来。编译器不能检查出来。#includevoid main()int i;float f;scanf(“%f”,i);printf(“%d”,f);#includeusing namespa

16、ce std;void main()int i;float f;cini;cout”在在C+C+中仍保持中仍保持C C中中“右移右移”功能,但用于输入时扩充了其功能,表示将从功能,但用于输入时扩充了其功能,表示将从标准输入流标准输入流(键盘键盘)读取的数值传送给右方指定读取的数值传送给右方指定的变量。的变量。n如:如:cinx;cinx;/键盘输入的数据自动转换为变键盘输入的数据自动转换为变量量X X的类型,并存入变量的类型,并存入变量X X内。内。n可以可以连续输连续输,如,如cinabc;cinabc;不用顾忌类型。不用顾忌类型。它按书写顺序从键盘上提取所要求的数据,并它按书写顺序从键盘上

17、提取所要求的数据,并存入对应的变量中。存入对应的变量中。n用用cincin输入时,要注意使用输入时,要注意使用间隔符间隔符 (空格、空格、回车、回车、TabTab键键)。coutcout中运算符中运算符“”在在C+C+中保持中保持C C中中“左移左移”功能,表示将右方变量的值写到标准输出流功能,表示将右方变量的值写到标准输出流cout(cout(即屏幕即屏幕)中。中。“”允许用户连续输出允许用户连续输出一串数据或表达式。一串数据或表达式。可以使用格式控制可以使用格式控制(与与C C兼容兼容),默认的转换默认的转换基数是十进制。基数是十进制。如:如:dec(dec(十进制十进制),hex(),h

18、ex(十六进制十六进制),),oct(oct(八进制八进制),endl,t,n),endl,t,n等。等。#include using namespace std;void main()int x=25;int x=25;coutcouthexhexx x decdecx x octoctxn;xn;输出结果:输出结果:19 25 312 2、WindowsWindows应用程序应用程序 void Ca7Dlg:OnBnClickedButton1()MessageBox(Ldfdf);/TODO:在此添加控件通知处理程序在此添加控件通知处理程序代码代码 基本整型基本整型()短整型短整型()整

19、型整型 长整型长整型()无符号型无符号型()基本类型基本类型 单精度型单精度型()实型实型(浮点型浮点型)双精度型双精度型()字符型字符型()扩展双精度型扩展双精度型()数据类型数据类型 布尔型布尔型()空类型空类型()数组类型数组类型()指针类型指针类型(*)构造类型构造类型 结构体类型结构体类型)共用体类型共用体类型()枚举型枚举型()类类()1.3 C+1.3 C+数据类型数据类型C+中新增C+C+中用中用typedeftypedef声明一个新的类型名来代替已有的类型声明一个新的类型名来代替已有的类型名。如名。如typedef int INTEGERtypedef int INTEGER

20、;/指定用标识符指定用标识符INTEGERINTEGER代表代表intint类型类型typedef float REALtypedef float REAL;/指定用指定用REALREAL代表代表floatfloat类型类型这样,以下两行等价:这样,以下两行等价:int i,j;float a,b;int i,j;float a,b;INTEGER i,j INTEGER i,j;REAL a,b;REAL a,b;如果在一个程序中,整型变量是专门用来计数的,可以如果在一个程序中,整型变量是专门用来计数的,可以用用COUNTCOUNT来作为整型类型名:来作为整型类型名:typedef int

21、COUNT;/typedef int COUNT;/指定用指定用COUNTCOUNT代表代表intint型型COUNT i,jCOUNT i,j;说明说明:1):1)用用typedeftypedef声明类型声明类型也可以声明结构体类型:也可以声明结构体类型:typedef struct typedef struct int month;int month;int day;int day;int year;int year;DATEDATE;/注意注意DATEDATE是新类型名,而不是结是新类型名,而不是结构体变量名构体变量名用用DATEDATE定义变量:定义变量:DATE birthdayDA

22、TE birthday;DATE DATE *p;/pp;/p为指向此结构体为指向此结构体类型数据的指针类型数据的指针2)sizeof 2)sizeof 函数函数用于计算某种数据类型的长度,返回值为字节数。用于计算某种数据类型的长度,返回值为字节数。如如 cout“int cout“int 的长度:的长度:”sizeof(int)endl;sizeof(int)endl;cout“double cout“double的长的长度度”sizeof(double)endlsizeof(double)endl 常量:在程序运行期间其值不能被修改,在常量:在程序运行期间其值不能被修改,在定义时必须初始化

23、定义时必须初始化 严格来说,常量又分成符号常量和常数。严格来说,常量又分成符号常量和常数。v符号常量:符号常量:v代表一个固定不变值的名字代表一个固定不变值的名字v常数(整型和浮点型):常数(整型和浮点型):v程序中使用的具体的数据程序中使用的具体的数据1.4 1.4 常量及其定义常量及其定义 符号常量符号常量C+C+中提供了一个关键字中提供了一个关键字constconst,用来区,用来区分常量和变量。并且由于常量代表一个分常量和变量。并且由于常量代表一个固定的值,并且该值在程序运行过程中固定的值,并且该值在程序运行过程中不能够被改变,不能够被改变,所以要求常量在定义的所以要求常量在定义的时候

24、必须进行初始化。时候必须进行初始化。定义形式有:定义形式有:const const 数据类型数据类型 符号常量名符号常量名=初始初始值值;例如:例如:const doubleconst double PI=3.1415926;PI=3.1415926;const doubleconst double PI;PI=3.1415926;/error/error const double const double PI=;/error/error const intconst int M=max(15,23);/error/error#define#define 符号常量名符号常量名 初始值初始值例

25、如:例如:#define PI 3.1415926#define PI 3.14159261.5 1.5 变量变量 在在C+C+中,变量是存储信息的地方。变量中,变量是存储信息的地方。变量的实质是内存中的一个地址空间,在这个地的实质是内存中的一个地址空间,在这个地址空间中可以进行数据的存储和读取。址空间中可以进行数据的存储和读取。注意:注意:1 1)大小写区分)大小写区分 2 2)命名习惯)命名习惯 3 3)与)与C C语言不同,语言不同,C+C+语言中的变量定义不必语言中的变量定义不必位于程序的开始,位于程序的开始,可以穿插在其它语句中间。可以穿插在其它语句中间。f()int i;i=10;

26、int j;j=25;/1.6 1.6 引用引用 引用是别名引用是别名 建立引用时,程序用另一个变量或对象建立引用时,程序用另一个变量或对象(目目标标)的名字初始化它的名字初始化它 引用作为目标的别名而使用,对引用的改引用作为目标的别名而使用,对引用的改动实际是对目标的改动动实际是对目标的改动 引用的声明形式为引用的声明形式为&引用名引用名=目标名目标名 或或&引用名引用名=目标名目标名引用型变量的名字,必须引用型变量的名字,必须遵循变量的命名规则遵循变量的命名规则 例如,引用一个整型变量:例如,引用一个整型变量:int someIntint someInt;int&rInt=someInt;

27、int&rInt=someInt;声明声明rIntrInt是对整数的引用,初始化为引用是对整数的引用,初始化为引用someIntsomeInt。注意:注意:在这里,要求在这里,要求someIntsomeInt已经声明或定义。已经声明或定义。引用不是值,引用不是值,不占存储空间不占存储空间,声明引用时,目,声明引用时,目标的存储状态不会改变。标的存储状态不会改变。引用在声明时必须初始化。引用在声明时必须初始化。someInt:6rInt:6someInt:7rInt:7例例 如何建立和使用引用如何建立和使用引用输出结果输出结果#include#include using namespace st

28、d;using namespace std;void main()void main()int someInt;int someInt;/定义变量定义变量intint&rInt=someInt rInt=someInt;/;/引用引用someInt=6;someInt=6;coutsomeInt:someIntendl;coutsomeInt:someIntendl;coutrInt:rIntendl;coutrInt:rIntendl;rInt=7;rInt=7;coutsomeInt:someIntendl;coutsomeInt:someIntendl;coutrInt:rIntendl

29、;coutrInt:rIntendl;#include stdafx.h#include stdafx.h#include#include using namespace std;using namespace std;int main()int main()int a=2568;int a=2568;int int*pt;pt;int&aa=a;int&aa=a;pt=&a;pt=&a;coutataat coutataat*ptendl;ptendl;cout(&a)t(&aa)tptendl;cout(&a)t(&aa)tptendl;cout(&pt)endl;cout(&pt)end

30、l;return 0;return 0;1 1)选择结构)选择结构C+C+语言支持下列基本的条件语句:语言支持下列基本的条件语句:if if语句语句 if if elseelse语句语句 if if else ifelse if语句语句?条件语句条件语句 可简化条件表达式的表达形式,语法为:可简化条件表达式的表达形式,语法为:expression1?expression1?Expression2:expression3Expression2:expression3if(expression1)if(expression1)statement1statement1;elseelse statem

31、ent2statement2;1.7 c+1.7 c+控制结构控制结构lswitchswitch语句语句 多次判断选择 判断的是同一个表达式的值switch(表达式表达式)case 常量表达式常量表达式1:语句:语句1case 常量表达式常量表达式2:语句:语句2case 常量表达式常量表达式n:语句:语句ndefault:语句语句n+1只能是整型、字符只能是整型、字符型和枚举型型和枚举型值不能相同,且次值不能相同,且次序不影响执行结果序不影响执行结果每个每个case分支可以有分支可以有多条语句,但不用多条语句,但不用#include#include using namespace std;i

32、nt main()int x=1,y=0,a=0,b=0;switch(x)case 1:switch(y)case 0:a+;break;case 1:b+;break;case 2:a+;b+;break;case 3:a+;b+;/printf(“a=%d,b=%dn”,a,b);couta=atb=b;whilewhile循环循环(特别适合处理字符串和其他指针类型)(特别适合处理字符串和其他指针类型)do do whilewhile循环循环 forfor循环循环(通常用于具有固定长度的数据结构)(通常用于具有固定长度的数据结构)do statement;while(expression

33、);for(expression1;expression2;expression3)statement;注意:注意:对于对于whilewhile语句或语句或forfor语句,循环体中的语句只语句,循环体中的语句只有在有在 whilewhile或或forfor语句中的条件为真时,才会被执行;语句中的条件为真时,才会被执行;而而dodowhilewhile语句则总能保证循环体被执行一次。语句则总能保证循环体被执行一次。while(expression)statement;2 2)循环结构循环结构 int sum=0;int sum=0;for(for(intint i=1;i=100;i+)i=1

34、;i=100;i+)sum=sum+i;sum=sum+i;coutsumendl;coutsumy?x:y;return(z);形式参数,必须分别形式参数,必须分别列出每个参数的类型列出每个参数的类型结束函数的结束函数的执行,返回执行,返回到调用处到调用处函数的返回值,必须函数的返回值,必须与函数类型一致与函数类型一致 形式参数形式参数是调是调用该函数时需要函用该函数时需要函数处理的数据。数处理的数据。返回值返回值是函数是函数调用完后回应给调调用完后回应给调用者的结果。用者的结果。函数名函数名函数返回值函数返回值类型,若为类型,若为int可省略可省略1.81.8函数函数1 1、函数定义、函数

35、定义 2 2、函数调用函数调用 函数的功能是通过在程序中对其调用来实现的。函数的功能是通过在程序中对其调用来实现的。调用一个函数,就是把控制权转去执行该函调用一个函数,就是把控制权转去执行该函数的函数体,函数体执行完之后,再将控制权数的函数体,函数体执行完之后,再将控制权转到调用函数处。转到调用函数处。无参函数的调用格式一般为:无参函数的调用格式一般为:函数名函数名()()有参函数的调用格式一般为:有参函数的调用格式一般为:函数名函数名()中的参数称为实际参数或中的参数称为实际参数或实参实参。#include /函数定义函数定义void main(void)int a,b,c;cinab;c=

36、max(a,b);prn();coutcendl;执行过程:执行过程:main函数函数调用函数调用函数maxmax调用函数调用函数prnprnmax函数函数函数体函数体prn函数函数函数体函数体函数调用的使用方式如下:函数调用的使用方式如下:(1)(1)对于有返回值的函数,调用出现在表对于有返回值的函数,调用出现在表达式中。达式中。(2)(2)对于没有返回值的函数,函数调用只对于没有返回值的函数,函数调用只能通过函数调用语句实现。能通过函数调用语句实现。函数调用方式:函数调用方式:赋值赋值 如:如:c=max(a,b)c=max(a,b);表达式中表达式中 c=1+max(x,y);coutm

37、ax(x,y)c=1+max(x,y);coutmax(x,y);执行函数执行函数 prn();prn();例例 编写程序求编写程序求的值的值其中其中arctanarctan用如下形式的级数计算:用如下形式的级数计算:直到级数某项绝对值不大于直到级数某项绝对值不大于1010-15-15为止;为止;和和x x均为均为doubledouble型。型。2391arctan451arctan16753)arctan(753xxxxx#includeusing namespace std;int main()double a,b;double arctan(double x);/函数原型声明函数原型声明

38、 a=16.0*arctan(1/5.0);b=4.0*arctan(1/239.0);/注意:因为整数相除结果取整,注意:因为整数相除结果取整,/如果参数写如果参数写1/51/5,1/2391/239,结果就都是,结果就都是0 0 coutPI=a-b1e-15)f=e/i;r=(i%4=1)?r+f:r-f;e=e*sqr;i+=2;return r;3 3、函数声明、函数声明v如果函数如果函数调用调用的位置在函数的位置在函数定义之前定义之前,C+C+强制要求强制要求在函数调用之前必须对所调用的在函数调用之前必须对所调用的函数作函数作函数原型声明函数原型声明。v函数声明的一般形式:函数声明

39、的一般形式:v如:如:int max(int x,int y);int max(int x,int y);int max(int,int);int max(int,int);4 4、函数重载、函数重载语言编程时,有时几个语言编程时,有时几个不同名不同名的的函数函数实现的是实现的是同一类的操作同一类的操作。例如:求三个数中最大值,数据。例如:求三个数中最大值,数据类型未知。需要设计三个函数:类型未知。需要设计三个函数:intint max1 max1(intint a,a,intint b,b,intint c);c);float float max2 max2(floatfloat a,a,f

40、loatfloat b,b,floatfloat c);c);long long max3 max3(longlong a,a,longlong b,b,longlong c);c);语言规定在同一作用域中不能有同名的函数。语言规定在同一作用域中不能有同名的函数。语言允许同一作用域中有同名的函数来实现语言允许同一作用域中有同名的函数来实现不同功能,不同功能,和和不同不同,此即,此即函数的重函数的重载载。int main()int a=3,b=1,c=4;float d=3.1,e=6.2,f=4.9;long g=69242;long h=-13,i=78241;coutmaxendl;cou

41、tmaxendl;coutmaxendl;return 0;例例 求求3 3个数的最大值。个数的最大值。#include using namespace std;max(a,b,c)if(ba)a=b;if(ca)a=c;return(a);max(a,b,c)if(ba)a=b;if(ca)a=c;return(a);max(a,b,c)if(ba)a=b;if(ca)a=c;return(a);5 5、函数的参数传递、函数的参数传递-用引用做形参用引用做形参#includeusing namespace std;void Swap(int&a,int&b);int main()int x(

42、5),y(10);coutx=x y=yendl;Swap(x,y);coutx=x y=yendl;return 0;void Swap(int&a,int&b)int t;t=a;a=b;b=t;t=a;t=a;x x5t5 5x x 的别名的别名a ax xy y5 51010y y 的别名的别名x x 的别名的别名a ab by y 的别名的别名x x 的别名的别名a ab bx x1010y y1010a=ba=bb=t;b=t;y5t5y y 的地址的地址b bx xy y10105Swap(x,y);Swap(x,y);576 6、内联函数、内联函数 频繁使用频繁使用某函数时,在

43、编译时将所调用函数的某函数时,在编译时将所调用函数的代码嵌入到主函数中,此函数为内置函数(内联函代码嵌入到主函数中,此函数为内置函数(内联函数)。数)。要求要求l函数定义前加关键字函数定义前加关键字inlineinline。l函数体内含函数体内含循环,循环,switchswitch和复杂的和复杂的ifif嵌套语句嵌套语句不要使用。不要使用。l关键字关键字inline inline 必须与必须与函数定义函数定义体放在一起才体放在一起才能使函数成为内联,仅将能使函数成为内联,仅将inline inline 放在函数声明放在函数声明前面不起任何作用。前面不起任何作用。l只适用于只适用于规模很小规模很

44、小而使用频繁的函数而使用频繁的函数例例 内联函数应用举例内联函数应用举例#include#includeusing namespace std;using namespace std;inlineinline double double CalAreaCalArea(double radius)(double radius)return 3.14return 3.14*radiusradius*radius;radius;int main()int main()double r(3.0);double r(3.0);double area;double area;area=area=CalAr

45、eaCalArea(r);(r);coutareaendl;coutareaendl;return 0;return 0;7 7、有默认参数的函数有默认参数的函数 函数在声明时可以预先给出默认的形参值,函数在声明时可以预先给出默认的形参值,调用时如给出实参,则采用实参值,否则采用预调用时如给出实参,则采用实参值,否则采用预先给出的默认形参值。先给出的默认形参值。例如:例如:int add(int x=5,int y=6)int add(int x=5,int y=6)return x+y;return x+y;int main()int main()add(10,20);add(10,20);

46、add(10);add(10);add();add();注意:注意:1 1)默认形参值必须默认形参值必须从右向左从右向左顺序声明,并且顺序声明,并且在默认形参值的右面不能有非默认形参值的参在默认形参值的右面不能有非默认形参值的参数。数。例:例:int add(int x,int y=5,int z=6);/int add(int x,int y=5,int z=6);/正确正确int add(int x=1,int y=5,int add(int x=1,int y=5,intint z z);/);/错误错误int add(int x=1,int add(int x=1,intint y y

47、,int z=6);/,int z=6);/错误错误 2)2)调用出现在调用出现在函数体实现之前函数体实现之前时,默认形参时,默认形参值必须在值必须在函数原形函数原形中给出;而当调用出现在中给出;而当调用出现在函数体实现之后函数体实现之后时,默认形参值需在时,默认形参值需在函数实函数实现时给出。现时给出。例:int add(int x=5,int y=6);int add(int x=5,int y=6);int main()int main()add();/add();/调用在实现前调用在实现前 int add(int x,int y)int add(int x,int y)return x+y;return x+y;int add(int x=5,int y=6)int add(int x=5,int y=6)return x+y;return x+y;int main()int main()add();/add();/调用在实现后调用在实现后

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(C基础知识课件.ppt)为本站会员(三亚风情)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|