《C++编程基础知识ppt课件.ppt》由会员分享,可在线阅读,更多相关《C++编程基础知识ppt课件.ppt(74页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第第2章章 C+编程基础编程基础 经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用第第2章章 C+编程基础编程基础第第2章章 C+编程基础编程基础 经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用第第2章章 C+编程基础编程基础2.1 数据类型与表达式数据类型与表达式2.2 程序的控制结构程序的控制结构2.3 函数函数 2.4 数组数组2.5 指针指针2.6 构造数据类型构造数据类型第第2章章 C+编程基础编程基础 经营者提供商品或
2、者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用 C语言与面向对象的语言与面向对象的C+C语言是七十年代初贝尔实验室的语言是七十年代初贝尔实验室的Dennis Richie 等人在等人在B语言基础上开发出来的。语言基础上开发出来的。C最初是作为最初是作为UNIX操作系统的操作系统的开发语言为人们所认识。开发语言为人们所认识。七十年代末,随着微型计算机的发展,七十年代末,随着微型计算机的发展,C语言开始移植到语言开始移植到非非UNIX环境中,并逐步脱离环境中,并逐步脱离UNIX系统成为一种独立的程系统成为一种独立的程序设计语言。序
3、设计语言。C 语言版本很多,为了让开发出来的代码能够在多种平台语言版本很多,为了让开发出来的代码能够在多种平台上运行,上运行,1988年美国国家标准协会年美国国家标准协会ANSI对对C语言进行了语言进行了标准化,产生了标准化,产生了ANSI C。C语言是一个语言是一个面向过程的编程语言面向过程的编程语言。第第2章章 C+编程基础编程基础 经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用C语言与面向对象的语言与面向对象的C+C+包括包括C的全部特征、属性和优点。的全部特征、属性和优点。C+支持支持面向对象面向对象程
4、序设计。通过程序设计。通过类类和和对象对象的概念把数据的概念把数据和对数据的操作和对数据的操作封装封装在一起,通过在一起,通过派生派生、继承继承、重载重载和和多多态性态性等特征实现了软件重用和程序自动生成,使得大型复等特征实现了软件重用和程序自动生成,使得大型复杂软件的构造和维护变得更加有效和容易。杂软件的构造和维护变得更加有效和容易。C+与与C完全兼容。但由于与完全兼容。但由于与C兼容,使得兼容,使得C+不是纯正的不是纯正的面向对象的语言,它既支持面向对象程序设计,也支持面面向对象的语言,它既支持面向对象程序设计,也支持面向过程程序设计。向过程程序设计。C+编译环境有许多版本,国内较为流行的
5、有编译环境有许多版本,国内较为流行的有Visual C+和和C+Builder。第第2章章 C+编程基础编程基础 经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用一个简单的一个简单的C+程序程序/表示注释行,表示注释行,#引导一个预处理语句;引导一个预处理语句;main 表示主函表示主函数,数,void 表示无返回值表示无返回值cin为输入流,类似为输入流,类似C语言的语言的scanf;cout为输出流,类似为输出流,类似C语言的语言的printf;其对应的头文件为;其对应的头文件为iostream.hendl
6、是换行函数;是换行函数;n 为换行符;函数体用为换行符;函数体用括起来。括起来。注意与注意与C的区别。它没有用到类的概念。的区别。它没有用到类的概念。#include /包含头文件,称为编译预处理行包含头文件,称为编译预处理行void main()/main()函数,程序入口函数,程序入口 /程序体开始程序体开始 int x;/定义变量定义变量 cinx;/由键盘输入值并赋值给变量由键盘输入值并赋值给变量x cout n x=xendl;/输出字符串内容和输出字符串内容和x的值并换行的值并换行 /程序体结束程序体结束运行结果:运行结果:x=6第第2章章 C+编程基础编程基础 经营者提供商品或者
7、服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用2.1 数据类型与表达式数据类型与表达式程序设计主要包括数据结构(数据类型)和算法(操作步程序设计主要包括数据结构(数据类型)和算法(操作步骤)的设计。骤)的设计。运行程序,要先描述算法。而描述算法应先说明算法要用运行程序,要先描述算法。而描述算法应先说明算法要用的数据。的数据。数据以变量或常量的形式来描述,每个变量或常量都有数数据以变量或常量的形式来描述,每个变量或常量都有数据类型。据类型。第第2章章 C+编程基础编程基础 经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增
8、加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用C+语言的命名原则语言的命名原则 C+语言的字符集由下述字符构成语言的字符集由下述字符构成:英文字母:英文字母:AZ,az 数字字符:数字字符:09 特特殊殊字字符符:空空格格、!、#、%、&、*、_(下下划划线线)、+、=、:、-、/、?、;、.、()、C+的命名原则的命名原则第第2章章 C+编程基础编程基础 经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用C+中的数据类型分为中的数据类型分为基本类型基本类型(C+编译系统内置)和编译系统内
9、置)和非基本类型非基本类型(用户自定义类型)。(用户自定义类型)。第第2章章 C+编程基础编程基础 经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用说说明明:在在不不同同的的系系统统中中,每每个个变变量量类类型型所所占占的的字字节节数数可可能能有有所不同,这里列出的是在所不同,这里列出的是在VC+编译环境中的情况。编译环境中的情况。第第2章章 C+编程基础编程基础 经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用2.1.1 常量常量
10、1整型常量整型常量2实型常量实型常量浮点小数,只使用十进制表示浮点小数,只使用十进制表示两种表示形式两种表示形式一般形式:一般形式:16.5,-13.5,3.1415926F,0.1f,0.0,2.指数形式:指数形式:3e1 1.0e-3默认为默认为double型型,如果后缀为,如果后缀为F(或(或f)则为)则为float型。型。20(十进制表示)(十进制表示)0 x14024十六进制表示十六进制表示八进制表示八进制表示0若干若干07的数字的数字 0 x若干若干09的数字及的数字及AF的字母的字母第第2章章 C+编程基础编程基础 经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿
11、其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用3字符常量字符常量单引号单引号括起来的一个字符括起来的一个字符如如A,2(非数字非数字),(空格),(空格),?4字符串常量字符串常量简称字符串,用一对简称字符串,用一对双引号双引号括起来的字符序列括起来的字符序列例如例如China5布尔常量布尔常量两个:两个:false(假假)true(真真)第第2章章 C+编程基础编程基础 经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用不可显示字符不可显示字符无法通过键盘输入,如响铃、换行、制表符、回车等无法
12、通过键盘输入,如响铃、换行、制表符、回车等C+预定义的转义序列预定义的转义序列第第2章章 C+编程基础编程基础 经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用2.1.2 变量变量在程序的执行过程中值可变的量。在程序的执行过程中值可变的量。变量在使用之前需要首先声明其类型和名称。变量在使用之前需要首先声明其类型和名称。声明形式:声明形式:变量名变量名1,变量名,变量名2,变量名,变量名n;命名规则:由字符、数字和下划线组成,且命名规则:由字符、数字和下划线组成,且只能由字符和只能由字符和下划线开头下划线开头。声明
13、一个变量的同时,也可以给它赋初值。声明一个变量的同时,也可以给它赋初值。在组成变量名的元素中,在组成变量名的元素中,大小写字母含义不同大小写字母含义不同。作为保留字的单词不能再作为其他名字使用作为保留字的单词不能再作为其他名字使用。第第2章章 C+编程基础编程基础 经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用C+中常用的保留字中常用的保留字第第2章章 C+编程基础编程基础 经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用2.1.
14、3 引用引用引用是别名引用是别名建立引用时,程序用另一个变量或对象建立引用时,程序用另一个变量或对象(目标目标)的名字初始化的名字初始化它它引用作为目标的别名而使用,对引用的改动实际是对目标引用作为目标的别名而使用,对引用的改动实际是对目标的改动的改动引用的声明形式为引用的声明形式为&引用名引用名=目标名目标名 或或&引用名引用名=目标名目标名引用型变量的名字,必须引用型变量的名字,必须遵循变量的命名规则遵循变量的命名规则第第2章章 C+编程基础编程基础 经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用引用引用例
15、如,引用一个整型变量:例如,引用一个整型变量:int someInt;int&rInt=someInt;声明声明rInt是对整数的引用,初始化为引用是对整数的引用,初始化为引用someInt。注意:注意:在这里,要求在这里,要求someInt已经声明或定义。已经声明或定义。引用不是值,引用不是值,不占存储空间不占存储空间,声明引用时,目标的存储状,声明引用时,目标的存储状态不会改变。态不会改变。引用在声明时必须初始化。引用在声明时必须初始化。第第2章章 C+编程基础编程基础 经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受
16、服务的费用#include/输入输出头文输入输出头文件件void main()int someInt;/定义变量定义变量int&rInt=someInt;/引用引用someInt=6;coutsomeInt:someIntendl;coutrInt:rIntendl;rInt=7;coutsomeInt:someIntendl;coutrInt:rIntendl;someInt:6rInt:6someInt:7rInt:7例例2-1 如何建立和使用引用如何建立和使用引用输出结果输出结果第第2章章 C+编程基础编程基础 经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失
17、,增加赔偿的金额为消费者购买商品的价款或接受服务的费用引用与指针关系的分析引用与指针关系的分析void Swap(int&a,int&b)/引用调用引用调用 int t=a;a=b;b=t;void Swap(int*a,int*b)/指针调用指针调用 int t;t=*a;*a=*b;*b=t;void Swap(int a,int b)/传值调用传值调用 int t=a;a=b;b=t;区别区别:1.引用是某一对象的别名引用是某一对象的别名,指针是某指针是某一变量的地址变量。一变量的地址变量。2.引用在定义时必须初始化引用在定义时必须初始化,即为一即为一已定义对象的别名。指针可在使用时已定
18、义对象的别名。指针可在使用时初始化初始化,可以重新赋值。可以重新赋值。引用的作用引用的作用:1.引用可象地址一样完引用可象地址一样完成对所代表的对象的操成对所代表的对象的操作。作。2.对引用的操作不同于对引用的操作不同于对指针的操作对指针的操作,它可直接它可直接作用于变量作用于变量,所以更方便所以更方便,更易于理解。更易于理解。引用的缺点引用的缺点:引用不能为空引用不能为空,即必须代即必须代表某一对象。表某一对象。指针灵活性较好指针灵活性较好,但使用但使用较不方便。较不方便。第第2章章 C+编程基础编程基础 经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿
19、的金额为消费者购买商品的价款或接受服务的费用2.1.4 表达式表达式表达式由运算符、运算对象和括号组成。表达式由运算符、运算对象和括号组成。1运算符运算符C+语言定义了丰富的运算符,如算术运算符、关系运算语言定义了丰富的运算符,如算术运算符、关系运算符、逻辑运算符等符、逻辑运算符等分为单目运算符和双目运算符分为单目运算符和双目运算符使用形式为使用形式为运算符运算符 第第2章章 C+编程基础编程基础 经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用运算符优先级 优先级优先级运算符运算符结合结合高高 低低括号:(括号
20、:()单目:单目:双目:双目:*/%+输出输入:输出输入:赋值:赋值:=内到外内到外,左到右左到右右到左右到左左到右左到右左到右左到右左到右左到右右到左右到左 算术运算符算术运算符 关系运算符关系运算符优先级优先级运算符运算符结合结合高高 低低输出输入:输出输入:=!=左到右左到右左到右左到右左到右左到右运算结果:运算结果:1=真真;0=假假第第2章章 C+编程基础编程基础 经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用 常用复合赋值运算符常用复合赋值运算符优先级优先级运算符运算符结合结合高高 低低单目增量:单
21、目增量:+单目减量:单目减量:赋值:赋值:=,+=,-=*=,/=右到左右到左与单目与单目 同级同级.与与=同级同级2;52;6例:例:int i=1,j=5;cout +i ;j+endl;cout i ;j endl;+v为前置增量为前置增量:先进行增量运算先进行增量运算,再取其值参与其再取其值参与其它运算它运算v+为后置增量为后置增量:先取其值参与其先取其值参与其它运算它运算,再对原值再对原值进行增量运算进行增量运算.输出结果输出结果第第2章章 C+编程基础编程基础 经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服
22、务的费用2表达式表达式表达式是程序最基本的组成部分表达式是程序最基本的组成部分由由运运算算符符(如如+、-、*、)、运运算算对对象象(也也称称操操作作数数,可可以是常量、变量等等以是常量、变量等等)和和括号括号组成组成执执行行表表达达式式所所规规定定的的运运算算,所所得得到到的的结结果果值值是是表表达达式式的值。的值。第第2章章 C+编程基础编程基础 经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用表达式的类型转换表达式的类型转换当表达式中出现了多种类型数据的混合运算时,首先需要当表达式中出现了多种类型数据的混合
23、运算时,首先需要进行类型转换,再计算表达式的值。进行类型转换,再计算表达式的值。表达式中的类型转换分为两种表达式中的类型转换分为两种隐含转换隐含转换强制转换强制转换第第2章章 C+编程基础编程基础 经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用 隐隐含含转转换换:若若参参加加运运算算的的操操作作数数类类型型不不一一致致,则则系系统统自自动动对对数据进行转换数据进行转换具体规则如下:具体规则如下:算术运算和关系运算转换:将低类型数据转换为高类型数据。算术运算和关系运算转换:将低类型数据转换为高类型数据。char
24、short int unsigned long unsigned-long float double 低低 高高逻逻辑辑运运算算符符:要要求求必必须须为为bool型型;系系统统自自动动将将其其转转换换为为bool型。转换方法是:型。转换方法是:非非0数据转换为数据转换为true,0转换为转换为false。位位运运算算:要要求求必必须须是是整整数数;若若是是不不同同类类型型的的整整数数时时,编编译译系系统会自动进行类型转换。统会自动进行类型转换。赋赋值值运运算算:要要求求左左值值(赋赋值值运运算算符符左左边边的的值值)与与右右值值(赋赋值值运运算算符右边的值符右边的值)的类型相同。的类型相同。第
25、第2章章 C+编程基础编程基础 经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用 强强制制类类型型转转换换。又又称称为为显显式式转转换换,是是通通过过类类型型标标识识符符和和括号来实现的,其语法形式有两种:括号来实现的,其语法形式有两种:(表达式表达式)或或(类型标识符类型标识符)第第2章章 C+编程基础编程基础 经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用2.2 程序的控制结构程序的控制结构 第第2章章 C+编程基础编程基础
26、经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用2.2.1 选择结构选择结构C+语言支持下列基本的条件语句:语言支持下列基本的条件语句:if语句语句 if else语语句句 if elseif语语句句?条件条件语语句句 可简化条件表达式的表达形式,语法为:可简化条件表达式的表达形式,语法为:expression1?Expression2:expression3if(expression1)statement1;elsestatement2;第第2章章 C+编程基础编程基础 经营者提供商品或者服务有欺诈行为的,应当
27、按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用2.2.2 switch语句语句多次判断选择多次判断选择判断的是同一个表达式的值判断的是同一个表达式的值switch(表达式表达式)case 常量表达式常量表达式1:语句:语句1case 常量表达式常量表达式2:语句:语句2case 常量表达式常量表达式n:语句:语句ndefault:语句语句n+1只能是整型、字符只能是整型、字符型和枚举型型和枚举型值不能相同,且次值不能相同,且次序不影响执行结果序不影响执行结果每个每个case分支可以有分支可以有多条语句,但不用多条语句,但不用第第2章章 C+编程基础编
28、程基础 经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用while循循环环(特别适合处理字符串和其他指针类型)(特别适合处理字符串和其他指针类型)do while循循环环for循循环环(通常用于具有固定长度的数据结构)(通常用于具有固定长度的数据结构)do statement;while(expression);for(expression1;expression2;expression3)statement;注意:注意:对于对于while语句或语句或for语句,循环体中的语句只有在语句,循环体中的语句只有在 w
29、hile或或for语句中的条件为真时,才会被执行;而语句中的条件为真时,才会被执行;而dowhile语语句则总能保证循环体被执行一次。句则总能保证循环体被执行一次。while(expression)statement;2.2.3 循环结构循环结构第第2章章 C+编程基础编程基础 经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用2.2.4 其他控制语句其他控制语句1break语句语句 只用于只用于switch语句或循环体中,作用是使程序从语句或循环体中,作用是使程序从switch语语句内跳出或句内跳出或结束循环结束
30、循环,继续执行逻辑上的下一条语句。,继续执行逻辑上的下一条语句。2continue语句语句仅用于循环体中,作用是仅用于循环体中,作用是结束本次循环结束本次循环,接着开始判断循,接着开始判断循环条件,决定是否继续执行下一次循环。环条件,决定是否继续执行下一次循环。第第2章章 C+编程基础编程基础 经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用2.3 函函 数数 第第2章章 C+编程基础编程基础 经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受
31、服务的费用2.3.1 函数定义函数定义由两部分组成:函数头与函数体。由两部分组成:函数头与函数体。函数定义的一般语法形式为:函数定义的一般语法形式为:(形式参数表形式参数表)说明性语句序列;说明性语句序列;实现函数功能的语句系列;实现函数功能的语句系列;类型标识符类型标识符:返回值类型。返回值是返回给主调函数的处理结返回值类型。返回值是返回给主调函数的处理结果,由函数体部分的果,由函数体部分的return语句带回。语句带回。形式参数表:形式参数表:简称形参表,内容如下:简称形参表,内容如下:(类型类型l 形参名形参名1,类型,类型2 形参名形参名2,类型,类型n 形参名形参名n)第第2章章 C
32、+编程基础编程基础 经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用2.3.2 调用函数调用函数调用函数先定义后调用,否则,需要在调用函数之前在主调用函数先定义后调用,否则,需要在调用函数之前在主调函数中声明函数原型。调函数中声明函数原型。函数原型声明形式:函数原型声明形式:(含类型说明的形参表含类型说明的形参表);函数调用形式:函数调用形式:(实参实参1,实参,实参2,实参,实参n)第第2章章 C+编程基础编程基础 经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消
33、费者购买商品的价款或接受服务的费用2.3.3 默认参数的函数默认参数的函数在函数定义中通过赋值运算指定默认参数值。在函数定义中通过赋值运算指定默认参数值。程序调用该函数时:程序调用该函数时:若给出实参,则用实参初始化形参;若给出实参,则用实参初始化形参;若没有给出实参,则若没有给出实参,则C+编译系统自动以预先赋值的默编译系统自动以预先赋值的默认参数值作为传入数值。认参数值作为传入数值。注意:默认形参值必须按注意:默认形参值必须按从右向左从右向左的顺序定义。的顺序定义。在有默认值的形参右面,不能出现无默认值的形参。在有默认值的形参右面,不能出现无默认值的形参。原因:函数调用时,实参初始化形参按
34、从左向右的顺序。原因:函数调用时,实参初始化形参按从左向右的顺序。void try(int j=3,int k)void try(int j,int k=2,int m)void try(int j,int k=7)void try(int j,int k=2,int m=3)void try(int j=3,int k=2,int m=3)/非法非法/非法非法/合法合法/合法合法/合法合法第第2章章 C+编程基础编程基础 经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用2.3.4 内联函数内联函数内联函数与一般
35、函数不同:不是在调用时发生转移,而是内联函数与一般函数不同:不是在调用时发生转移,而是在编译时将函数体嵌入在每一个调用语句处。在编译时将函数体嵌入在每一个调用语句处。优势:节省了参数传递、系统栈的保护与恢复等开销。优势:节省了参数传递、系统栈的保护与恢复等开销。内联函数的定义形式:内联函数的定义形式:(含类型说明的形参表含类型说明的形参表)函数体函数体第第2章章 C+编程基础编程基础 经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用例例2-2#include#include inline int max(int
36、a,int b)if(ab)return a;elsereturn b;void main()int a,b,c,d;a=210;b=150;c=20;d=max(a,b);d=max(d,c);coutThe biggest of setw(5)asetw(5)bsetw(5)c is dendl;运行结果运行结果:The biggest of 210 150 20 is 210第第2章章 C+编程基础编程基础 经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用内联函数内联函数注意:注意:内联函数体内一般不能有循
37、环语句和内联函数体内一般不能有循环语句和switch语句。语句。内联函数不能实现内联函数不能实现递归递归操作。操作。内联函数的定义必须出现在第一次被调用之前。内联函数的定义必须出现在第一次被调用之前。一般,简单且使用频率很高的函数才说明为内联函数。一般,简单且使用频率很高的函数才说明为内联函数。第第2章章 C+编程基础编程基础 经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用2.3.5 系统函数的使用系统函数的使用系统函数的原型声明已经全部由系统提供,并且已分类存系统函数的原型声明已经全部由系统提供,并且已分类存
38、于不同的头文件中。于不同的头文件中。使用系统函数:用使用系统函数:用include指令嵌入相应的头文件,再使用。指令嵌入相应的头文件,再使用。如:如:include 常用的函数库有常用的函数库有(C语言语言):math.h -数学运算,如数学运算,如sqrt(x),sin(x)stdio.h -输入输出函数输入输出函数stdlib.h -类型转换类型转换,存储分配等存储分配等time.h -时间和日期时间和日期string.h-字符串处理字符串处理assert.h-用于调试程序用于调试程序第第2章章 C+编程基础编程基础 经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的
39、损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用2.4 数组数组数组是一种构造数据类型,是具有一定顺序关系的若干数组是一种构造数据类型,是具有一定顺序关系的若干相相同类型变量同类型变量的集合体,它占用的集合体,它占用连续内存单元连续内存单元进行存储。组进行存储。组成数组的变量称为该数组的元素。成数组的变量称为该数组的元素。如:如:int c7;引用数组中的特定位置或元素,引用数组中的特定位置或元素,要指定数组中的特定位置或要指定数组中的特定位置或 元素的位置号元素的位置号数组名是数组数组名是数组首元素的内存地址首元素的内存地址。数组名是一个数组名是一个常量常量,不能被赋值。,不能被赋
40、值。第第2章章 C+编程基础编程基础 经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用2.4.1 一维数组一维数组数组使用前必须先声明。数组使用前必须先声明。声明一维数组的形式:声明一维数组的形式:数组长度数组长度数组中的每个元素可以当成普通的变量使用。数组中的每个元素可以当成普通的变量使用。访问一维数组元素的形式:访问一维数组元素的形式:下标下标引用引用只能逐个引用数只能逐个引用数组组元素,而不能一次引用整个数元素,而不能一次引用整个数组组例如:例如:a0=a5+a7-a2*3常量表达式常量表达式下标值从下标值
41、从0开始,不能开始,不能超过该维的长度减超过该维的长度减1第第2章章 C+编程基础编程基础 经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用形式形式1:在声明数组时对数组元素赋以初值在声明数组时对数组元素赋以初值 数数组组长长度度=第第0个个元元素素值值,第第1个元素值,个元素值,第,第n-1个元素值个元素值 例如:例如:int a10=0,1,2,3,4,5,6,7,8,9;可以只可以只给给一部分元素一部分元素赋赋初初值值。例如:例如:int a10=0,1,2,3,4;形式形式2:在对全部数组元素赋初值时,可
42、以不指定数组长度。:在对全部数组元素赋初值时,可以不指定数组长度。=第第0个个元元素素值值,第第1个个元元素值,素值,第,第n个元素值个元素值 例如:例如:int a=1,2,3,4,5未指定长度,由初始化未指定长度,由初始化的个数决定数组长度的个数决定数组长度一维数组的初始化一维数组的初始化第第2章章 C+编程基础编程基础 经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用2.4.2 多维数组多维数组多维数组的声明形式:多维数组的声明形式:长度长度1长度长度2 长度长度n访问多维数组中的元素:访问多维数组中的元素
43、:第第1维下标维下标第第2维下标维下标第第n维下标维下标第第2章章 C+编程基础编程基础 经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用二维数组的初始化二维数组的初始化形式形式1:分行给二维数组赋初值:分行给二维数组赋初值 第第1维长度维长度第第2维长度维长度=第第0个个第第2维数据组维数据组,第第1个第个第2维数据组维数据组,第第n-1个第个第2维维数据组数据组其中,其中,n等于第等于第1维长度。维长度。例如:例如:int a34=1,2,3,4,5,6,7,8,9,10,11,12;形式形式2:将所有数据写
44、在一个:将所有数据写在一个内,按顺序赋值内,按顺序赋值 第第1维长度维长度第第2维长度维长度=第第0个个元素值,第元素值,第1个元素值,个元素值,第,第m个元素值个元素值其中,其中,m小于或等于第小于或等于第1维长度维长度第第2维长度。维长度。例如:例如:int a34=1,2,3,4,5,6,7,8,9,10,11,12;第第2章章 C+编程基础编程基础 经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用二维数组的存储顺序二维数组的存储顺序如:如:float a34;存储顺序:按行存放,上例中数组存储顺序:按行存
45、放,上例中数组a的存储顺序为:的存储顺序为:列列 行行01230a00a01a02a031a10a11a12a132a20a21a22a23a00 a01 a02 a03 a10 a11 a12 a13 a20 a21 a22 a23第第2章章 C+编程基础编程基础 经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用#include void main()int a6=1,7,3,22,9,5;int i,j,t,flag;for(i=0;i6;i+)/冒泡次数冒泡次数 flag=0;/每一次循环将最大值移动数组中
46、的每一次循环将最大值移动数组中的最后一个元素最后一个元素 for(j=0;jaj+1)t=aj;aj=aj+1;aj+1=t;flag=1;if(flag=0)break;cout排序后的数组为:排序后的数组为:n;for(i=0;i6;i+)cout ain;2.4.3 数组应用数组应用例例2-3 已知一个一维数组中的元素为已知一个一维数组中的元素为1、7、3、22、9、5,现,现要求以递增顺序对这个数组中的元素进行排列,结果为要求以递增顺序对这个数组中的元素进行排列,结果为1、3、5、7、9、22。下面给出冒泡排序法的程序代码。下面给出冒泡排序法的程序代码。第第2章章 C+编程基础编程基础
47、 经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用2.4.4 数组作为函数的参数数组作为函数的参数数组名作参数,形参、实参都应是数组名,类型一致,传数组名作参数,形参、实参都应是数组名,类型一致,传送的是送的是数组首地址数组首地址。对形参数组的改变会直接影响到实参。对形参数组的改变会直接影响到实参数组。数组。定义形式:定义形式:形式形式1:(类型标识符类型标识符 数组名数组名,int 长度长度)形式形式2:(类型标识符类型标识符 数组名数组名长度长度)处理固定长度的数组处理固定长度的数组第第2章章 C+编程基础编
48、程基础 经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用2.4.5 数组与字符串数组与字符串1字符数组的初始化字符数组的初始化字符型数组通常有两种特殊的初始化方法,形式如下:字符型数组通常有两种特殊的初始化方法,形式如下:形式形式1:char =字符串字符串形式形式2:char =字符串字符串2字符串的基本运算字符串的基本运算1)求字符串的长度求字符串的长度2)字符串的复制字符串的复制3)字符串的连接字符串的连接第第2章章 C+编程基础编程基础 经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受
49、到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用2.5 指指 针针第第2章章 C+编程基础编程基础 经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用2.5.1指针变量的概念指针变量的概念指针:一个变量的地址指针:一个变量的地址,用用于间接访问变量于间接访问变量指针变量:用于存放另一指针变量:用于存放另一个变量的地址的变量个变量的地址的变量声明,例:声明,例:int i;int*i_pointer=&i;引用引用例例1:i=3;例例2:*i_pointer=3;内存用户数据区内存用户数据区变量变量 i
50、变量变量 j变量变量 i_pointer362000200020043010指向整型变量的指针指向整型变量的指针20003i_pointer*i_pointeri2000第第2章章 C+编程基础编程基础 经营者提供商品或者服务有欺诈行为的,应当按照消费者的要求增加赔偿其受到的损失,增加赔偿的金额为消费者购买商品的价款或接受服务的费用指针变量的初始化指针变量的初始化形式:形式:数据类型数据类型 *指针名初始地址;指针名初始地址;例:例:int*p=&a;注意事项注意事项用变量地址作为初值时,该变量必须在指针初始化之用变量地址作为初值时,该变量必须在指针初始化之前已说明,且变量类型应与指针类型一致