欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    C++ 面向对象程序设计课件第02章 编程基础.ppt

    • 资源ID:70013453       资源大小:694.50KB        全文页数:72页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    C++ 面向对象程序设计课件第02章 编程基础.ppt

    第第2章章 C+编程基础编程基础 第第2章章 C+编程基础编程基础第第2章章 C+编程基础编程基础 第第2章章 C+编程基础编程基础2.1 数据类型与表达式数据类型与表达式2.2 程序的控制结构程序的控制结构2.3 函数函数 2.4 数组数组2.5 指针指针2.6 构造数据类型构造数据类型第第2章章 C+编程基础编程基础 C语言与面向对象的语言与面向对象的CC语言是七十年代初贝尔实验室的语言是七十年代初贝尔实验室的Dennis Richie 等人在等人在B语言基础上开发出来的。语言基础上开发出来的。C最初是作为最初是作为UNIX操作系统的操作系统的开发语言为人们所认识。开发语言为人们所认识。七十年代末,随着微型计算机的发展,七十年代末,随着微型计算机的发展,C语言开始移植到语言开始移植到非非UNIX环境中,并逐步脱离环境中,并逐步脱离UNIX系统成为一种独立的系统成为一种独立的程序设计语言。程序设计语言。C 语言版本很多,为了让开发出来的代码能够在多种平台语言版本很多,为了让开发出来的代码能够在多种平台上运行,上运行,1988年美国国家标准协会年美国国家标准协会ANSI对对C语言进行了语言进行了标准化,产生了标准化,产生了ANSI C。C语言是一个语言是一个面向过程的编程语言面向过程的编程语言Dr.Bjarne Stroustrup,美国美国Bell公司大规模编程公司大规模编程研究中心主任,研究中心主任,C+语言的设计创建人。语言的设计创建人。第第2章章 C+编程基础编程基础 C语言与面向对象的语言与面向对象的C C+包括包括C的全部特征、属性和优点。的全部特征、属性和优点。C+支持支持面向对象面向对象程序设计。通过程序设计。通过类类和和对象对象的概念把数据的概念把数据和对数据的操作和对数据的操作封装封装在一起,通过在一起,通过派生派生、继承继承、重载重载和和多多态性态性等特征实现了软件重用和程序自动生成,使得大型复等特征实现了软件重用和程序自动生成,使得大型复杂软件的构造和维护变得更加有效和容易。杂软件的构造和维护变得更加有效和容易。C+与与C完全兼容。但由于与完全兼容。但由于与C兼容,使得兼容,使得C+不是纯正的不是纯正的面向对象的语言,它既支持面向对象程序设计,也支持面面向对象的语言,它既支持面向对象程序设计,也支持面向过程设计。向过程设计。C+编译环境有许多版本,国内较为流行的有编译环境有许多版本,国内较为流行的有Visual C+和和C+Builder。第第2章章 C+编程基础编程基础 一个简单的一个简单的C+程序程序/表示注释行,表示注释行,#引导一个预处理语句引导一个预处理语句main 表示主函数,表示主函数,void 表示无返回值表示无返回值cout为输出流,类似为输出流,类似C语言的语言的printf;endl 是换行函数;是换行函数;n 为换行符;函数体用为换行符;函数体用括起来。括起来。注意与注意与C的区别。它没有用到类的概念。的区别。它没有用到类的概念。#include /包含头文件,称为编译预处理行包含头文件,称为编译预处理行void main()/main()函数,程序入口函数,程序入口 /程序体开始程序体开始cout“n I am a student.”endl;/输出字符串内容并换行输出字符串内容并换行 /程序体结束程序体结束运行结果:运行结果:I am a student.第第2章章 C+编程基础编程基础 2.1 数据类型与表达式数据类型与表达式程序设计主要包括数据结构(数据类型)和算法(操作步程序设计主要包括数据结构(数据类型)和算法(操作步骤)的设计。骤)的设计。运行程序,要先描述算法。而描述算法应先说明算法要用运行程序,要先描述算法。而描述算法应先说明算法要用的数据。的数据。数据以变量或常量的形式来描述,每个变量或常量都有数数据以变量或常量的形式来描述,每个变量或常量都有数据类型。据类型。第第2章章 C+编程基础编程基础 C+语言的字符集语言的字符集 C+语言的字符集由下述字符构成语言的字符集由下述字符构成:英文字母:英文字母:AZ,az 数字字符:数字字符:09 特特殊殊字字符符:空空格格、!、#、%、&、*、_(下下划划线线)、+、=、:、-、/、?、;、.、()、第第2章章 C+编程基础编程基础 C+中的数据类型分为中的数据类型分为基本类型基本类型(C+编译系统内置)和编译系统内置)和非基本类型非基本类型(用户自定义类型)。(用户自定义类型)。第第2章章 C+编程基础编程基础 说说明明:在在不不同同的的系系统统中中,每每个个变变量量类类型型所所占占的的字字节节数数可可能能有有所不同,这里列出的是在所不同,这里列出的是在VC+编译环境中的情况。编译环境中的情况。第第2章章 C+编程基础编程基础 2.1.1 常量常量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+编程基础编程基础 3字符常量字符常量单引号单引号括起来的一个字符括起来的一个字符如如A,2(非数字非数字),(空格),(空格),?4字符串常量字符串常量简称字符串,用一对简称字符串,用一对双引号双引号括起来的字符序列括起来的字符序列例如例如China5布尔常量布尔常量两个:两个:False(假假)true(真真)第第2章章 C+编程基础编程基础 不可显示字符不可显示字符无法通过键盘输入,如响铃、换行、制表符、回车等无法通过键盘输入,如响铃、换行、制表符、回车等C+预定义的转义序列预定义的转义序列第第2章章 C+编程基础编程基础 2.1.2 变量变量在程序的执行过程中值可变的量。在程序的执行过程中值可变的量。变量在使用之前需要首先声明其类型和名称。变量在使用之前需要首先声明其类型和名称。声明形式:声明形式:变量名变量名1,变量名,变量名2,变量名,变量名n;命名规则:由字符、数字和下划线组成,且命名规则:由字符、数字和下划线组成,且只能由字符和只能由字符和下划线开头下划线开头。声明一个变量的同时,也可以给它赋初值。声明一个变量的同时,也可以给它赋初值。在组成变量名的元素中,在组成变量名的元素中,大小写字母含义不同大小写字母含义不同。作为保留字的单词不能再作为其他名字使用作为保留字的单词不能再作为其他名字使用。第第2章章 C+编程基础编程基础 C+中常用的保留字中常用的保留字数据类型说明符数据类型说明符与修饰符与修饰符bool char class const double enum float int long short signed struct union unsigned void存储类型说明符存储类型说明符auto extern inline register static访问说明符访问说明符friend private protected public其它说明符其它说明符explicit namespace operator template this typedef typename using virtual 语句与标号语句与标号break case catch continue default do else for goto if return switch throw try while 运算符及逻辑值运算符及逻辑值delete false new sizeof true第第2章章 C+编程基础编程基础 2.1.3 引用引用引用是别名引用是别名建立引用时,程序用另一个变量或对象建立引用时,程序用另一个变量或对象(目标目标)的名字初始的名字初始化它化它引用作为目标的别名而使用,对引用的改动实际是对目标引用作为目标的别名而使用,对引用的改动实际是对目标的改动的改动引用的声明形式为引用的声明形式为&引用名引用名=目标名目标名 或或&引用名引用名=目标名目标名引用型变量的名字,必须引用型变量的名字,必须遵循变量的命名规则遵循变量的命名规则第第2章章 C+编程基础编程基础 引用引用例如,引用一个整型变量:例如,引用一个整型变量:int someInt;int&rInt=someInt;声明声明rInt是对整数的引用,初始化为引用是对整数的引用,初始化为引用someInt。在这里,要求在这里,要求someInt已经声明或定义。已经声明或定义。引用不是值,引用不是值,不占存储空间不占存储空间,声明引用时,目标的存储状,声明引用时,目标的存储状态不会改变。态不会改变。引用在声明时必须初始化引用在声明时必须初始化第第2章章 C+编程基础编程基础#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+编程基础编程基础 引用与指针关系的分析引用与指针关系的分析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.引用在定义时必须初始化引用在定义时必须初始化,即为一即为一已定义对象的别名。指针可在使用时已定义对象的别名。指针可在使用时初始化初始化,可以重新赋值可以重新赋值.引用的作用引用的作用:1.引用可象地址一样完引用可象地址一样完成对所代表的对象的操成对所代表的对象的操作作.2.对引用的操作不同于对引用的操作不同于对指针的操作对指针的操作,它可直接它可直接作用于变量作用于变量,所以更方便所以更方便,更易于理解更易于理解.引用的缺点引用的缺点:引用不能为空引用不能为空,即必须代即必须代表某一对象。表某一对象。指针灵活性较好指针灵活性较好,但使用但使用较不方便。较不方便。第第2章章 C+编程基础编程基础 2.1.4 表达式表达式表达式由运算符、运算对象和括号组成。表达式由运算符、运算对象和括号组成。1运算符运算符C+语言定义了丰富的运算符,如算术运算符、关系运算语言定义了丰富的运算符,如算术运算符、关系运算符、逻辑运算符等符、逻辑运算符等分为单目运算符和双目运算符分为单目运算符和双目运算符使用形式为使用形式为运算符运算符 第第2章章 C+编程基础编程基础 运算符优先级 优先级优先级运算符运算符结合结合高高 低低括号:(括号:()单目:单目:双目:双目:*/%+输出输入:输出输入:赋值:赋值:=内到外内到外,左到右左到右右到左右到左左到右左到右左到右左到右左到右左到右右到左右到左 算术运算符算术运算符 关系运算符关系运算符优先级优先级运算符运算符结合结合高高 低低输出输入:输出输入:=!=左到右左到右左到右左到右左到右左到右运算结果:运算结果:1=真真;0=假假第第2章章 C+编程基础编程基础 常用复合赋值运算符常用复合赋值运算符优先级优先级运算符运算符结合结合高高 低低单目增量:单目增量:+单目减量:单目减量:赋值:赋值:=,+=,-=*=,/=右到左右到左与单目与单目 同级同级.与与=同级同级 2;5 2;6例:例:int i=1,j=5;cout +i ;j+endl;cout i ;j endl;+v为前置增量为前置增量:先进行增量运算先进行增量运算,再取其值参与其再取其值参与其它运算它运算v+为后置增量为后置增量:先取其值参与其先取其值参与其它运算它运算,再对原再对原值进行增量运算值进行增量运算.输出结果输出结果第第2章章 C+编程基础编程基础 2表达式表达式表达式是程序最基本的组成部分表达式是程序最基本的组成部分由由运运算算符符(如如+、-、*、)、运运算算对对象象(也也称称操操作作数数,可以是常量、变量等等可以是常量、变量等等)和和括号括号组成组成执执行行表表达达式式所所规规定定的的运运算算,所所得得到到的的结结果果值值是是表表达达式式的值。的值。第第2章章 C+编程基础编程基础 表达式的类型转换表达式的类型转换当表达式中出现了多种类型数据的混合运算时,首先需要当表达式中出现了多种类型数据的混合运算时,首先需要进行类型转换,再计算表达式的值。进行类型转换,再计算表达式的值。表达式中的类型转换分为两种表达式中的类型转换分为两种隐含转换隐含转换强制转换强制转换第第2章章 C+编程基础编程基础 隐隐含含转转换换:若若参参加加运运算算的的操操作作数数类类型型不不一一致致,则则系系统统自自动动对对数据进行转换数据进行转换具体规则如下:具体规则如下:算术运算和关系运算转换:将低类型数据转换为高类型数据。算术运算和关系运算转换:将低类型数据转换为高类型数据。char short int unsigned long unsigned-long float double 低低 高高逻逻辑辑运运算算符符:要要求求必必须须为为bool型型;系系统统自自动动将将其其转转换换为为bool型。转换方法是:型。转换方法是:非非0数据转换为数据转换为true,0转换为转换为false。位位运运算算:要要求求必必须须是是整整数数;当当是是不不同同类类型型的的整整数数时时,编编译译系系统会自动进行类型转换。统会自动进行类型转换。赋赋值值运运算算:要要求求左左值值(赋赋值值运运算算符符左左边边的的值值)与与右右值值(赋赋值值运运算算符右边的值符右边的值)的类型相同。的类型相同。第第2章章 C+编程基础编程基础 强强制制类类型型转转换换。又又称称为为显显式式转转换换,是是通通过过类类型型标标识识符符和和括号来实现的,其语法形式有两种:括号来实现的,其语法形式有两种:(表达式表达式)或或(类型标识符类型标识符)第第2章章 C+编程基础编程基础 2.2 程序的控制结构程序的控制结构 第第2章章 C+编程基础编程基础 2.2.1 选择结构选择结构C+语言支持下列基本的条件语句:语言支持下列基本的条件语句:if语句语句 if else语语句句 if elseif语语句句?条件条件语语句句 可简化条件表达式的表达形式,语法为:可简化条件表达式的表达形式,语法为:expression1?Expression2:expression3if(expression1)statement1;elsestatement2;第第2章章 C+编程基础编程基础 2.2.2 switch语句语句多次判断选择多次判断选择判断的是同一个表达式的值判断的是同一个表达式的值switch(表达式表达式)case常量表达式常量表达式1:语句:语句1case常量表达式常量表达式2:语句:语句2case常量表达式常量表达式n:语句语句ndefault:语句语句n+1只能是整型、字符只能是整型、字符型和枚举型型和枚举型值不能相同,且次值不能相同,且次序不影响执行结果序不影响执行结果每个每个case分支可以有分支可以有多条语句,但不用多条语句,但不用第第2章章 C+编程基础编程基础 while循循环环(特别适合处理字符串和其他指针类型)(特别适合处理字符串和其他指针类型)do while循循环环for循循环环(通常用于具有固定长度的数据结构)(通常用于具有固定长度的数据结构)do statement;while(expression);for(expression1;expression2;expression3)statement;注意:注意:对于对于while语句或语句或for语句,循环体中的语句只有在语句,循环体中的语句只有在 while或或for语句中的条件为真时,才会被执行;而语句中的条件为真时,才会被执行;而dowhile语语句则总能保证循环体被执行一次。句则总能保证循环体被执行一次。while(expression)statement;2.2.3 循环结构循环结构第第2章章 C+编程基础编程基础 2.2.4 其他控制语句其他控制语句1break语句语句 只用于只用于switch语句或循环体中,作用是使程序从语句或循环体中,作用是使程序从switch语句语句内跳出或内跳出或结束循环结束循环,继续执行逻辑上的下一条语句。,继续执行逻辑上的下一条语句。2continue语句语句仅用于循环体中,作用是仅用于循环体中,作用是结束本次循环结束本次循环,接着开始判断循,接着开始判断循环条件,决定是否继续执行下一次循环。环条件,决定是否继续执行下一次循环。第第2章章 C+编程基础编程基础 2.3 函函 数数 第第2章章 C+编程基础编程基础 2.3.1 函数定义函数定义由两部分组成:函数头与函数体。由两部分组成:函数头与函数体。函数定义的一般语法形式为:函数定义的一般语法形式为:(形式参数表形式参数表)说明性语句序列;说明性语句序列;实现函数功能的语句系列;实现函数功能的语句系列;类型标识符类型标识符:返回值类型。返回值是返回给主调函数的处理返回值类型。返回值是返回给主调函数的处理结果,由函数体部分的结果,由函数体部分的return语句带回。语句带回。形式参数表:形式参数表:简称形参表,内容如下:简称形参表,内容如下:类型类型l 形参名形参名1,类型,类型2 形参名形参名2,类型,类型n 形参名形参名n第第2章章 C+编程基础编程基础 2.3.2 调用函数调用函数调用函数先定义后调用,否则,需要在调用函数之前在主调用函数先定义后调用,否则,需要在调用函数之前在主调函数中声明函数原型。调函数中声明函数原型。函数原型声明形式:函数原型声明形式:(含类型说明的形参表含类型说明的形参表);函数调用形式:函数调用形式:(实参实参1,实参,实参2,实参,实参n)第第2章章 C+编程基础编程基础 2.3.3 默认参数的函数默认参数的函数在函数定义中通过赋值运算指定默认参数值。在函数定义中通过赋值运算指定默认参数值。程序调用该函数时:程序调用该函数时:若给出实参,则用实参初始化形参;若给出实参,则用实参初始化形参;若没有给出实参,则若没有给出实参,则C+编译系统自动以预先赋值的默编译系统自动以预先赋值的默认参数值作为传入数值。认参数值作为传入数值。注意:默认形参值必须按注意:默认形参值必须按从右向左从右向左的顺序定义。的顺序定义。在有默认值的形参右面,不能出现无默认值的形参。在有默认值的形参右面,不能出现无默认值的形参。原因:函数调用时,实参初始化形参按从左向右的顺序。原因:函数调用时,实参初始化形参按从左向右的顺序。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 内联函数内联函数内联函数与一般函数不同:不是在调用时发生转移,而是内联函数与一般函数不同:不是在调用时发生转移,而是在编译时将函数体嵌入在每一个调用语句处。在编译时将函数体嵌入在每一个调用语句处。优势:节省了参数传递、系统栈的保护与恢复等开销。优势:节省了参数传递、系统栈的保护与恢复等开销。内联函数的定义形式:内联函数的定义形式:(含类型说明的形参表含类型说明的形参表)函数体函数体第第2章章 C+编程基础编程基础 例例2-2#include#include inline int max(int a,int b)if(ab)return a;elsereturn b;The biggest of 210 150 20 is 210void 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;运行结果运行结果:第第2章章 C+编程基础编程基础 内联函数内联函数注意:注意:内联函数体内一般不能有循环语句和内联函数体内一般不能有循环语句和switch语句。语句。内联函数不能实现内联函数不能实现递归递归操作。操作。内联函数的定义必须出现在第一次被调用之前。内联函数的定义必须出现在第一次被调用之前。一般,简单且使用频率很高的函数才说明为内联函数。一般,简单且使用频率很高的函数才说明为内联函数。第第2章章 C+编程基础编程基础 2.3.5 系统函数的使用系统函数的使用系统函数的原型声明已经全部由系统提供,并且已分类存系统函数的原型声明已经全部由系统提供,并且已分类存于不同的头文件中。于不同的头文件中。使用系统函数:用使用系统函数:用include指令嵌入相应的头文件,再使用。指令嵌入相应的头文件,再使用。如:如:include 常用的函数库有常用的函数库有(C语言语言):math.h -数学运算,如数学运算,如sqrt(x),sin(x)stdio.h -输入输出函数输入输出函数stdlib.h -类型转换类型转换,存储分配等存储分配等time.h -时间和日期时间和日期string.h-字符串处理字符串处理assert.h-用于调试程序用于调试程序第第2章章 C+编程基础编程基础 2.4 数组数组数组是一种构造数据类型,是具有一定顺序关系的若干相数组是一种构造数据类型,是具有一定顺序关系的若干相同类型变量的集合体,它占用连续内存单元进行存储。组同类型变量的集合体,它占用连续内存单元进行存储。组成数组的变量称为该数组的元素。成数组的变量称为该数组的元素。如:如:int c7;引用数组中的特定位置或元素,引用数组中的特定位置或元素,要指定数组中的特定位置或要指定数组中的特定位置或 元素的位置号元素的位置号数组名是数组数组名是数组首元素的内存地址首元素的内存地址。数组名是一个数组名是一个常量常量,不能被赋值。,不能被赋值。第第2章章 C+编程基础编程基础 2.4.1 一维数组一维数组数组使用前必须先声明。数组使用前必须先声明。声明一维数组的形式:声明一维数组的形式:数组长度数组长度数组中的每个元素可以当成普通的变量使用。数组中的每个元素可以当成普通的变量使用。访问一维数组元素的形式:访问一维数组元素的形式:下标下标引用引用只能逐个引用数只能逐个引用数组组元素,而不能一次引用整个数元素,而不能一次引用整个数组组例如:例如:a0=a5+a7-a2*3常量表达式常量表达式下标值从下标值从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:在对全部数组元素赋初值时,可以不指定数组长度。:在对全部数组元素赋初值时,可以不指定数组长度。=第第0个个元元素素值值,第第1个个元元素值,素值,第,第n个元素值个元素值 例如:例如:int a=1,2,3,4,5未指定长度,由初始化未指定长度,由初始化的个数决定数组长度的个数决定数组长度一维数组的初始化一维数组的初始化第第2章章 C+编程基础编程基础 2.4.2 多维数组多维数组多维数组的声明形式:多维数组的声明形式:长度长度1长度长度2 长度长度n访问多维数组中的元素:访问多维数组中的元素:第第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:将所有数据写在一个:将所有数据写在一个内,按顺序赋值内,按顺序赋值 第第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;存储顺序:按行存放,上例中数组存储顺序:按行存放,上例中数组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;/每一次循环将最大值移动数组中的每一次循环将最大值移动数组中的最后一个元素最后一个元素 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+编程基础编程基础 2.4.4 数组作为函数的参数数组作为函数的参数数组名作参数,形参、实参都应是数组名,类型一致,传数组名作参数,形参、实参都应是数组名,类型一致,传送的是送的是数组首地址数组首地址。对形参数组的改变会直接影响到实参。对形参数组的改变会直接影响到实参数组。数组。定义形式:定义形式:形式形式1:(类型标识符类型标识符 数组名数组名,int 长度长度)形式形式2:(类型标识符类型标识符 数组名数组名长度长度)处理固定长度的数组处理固定长度的数组第第2章章 C+编程基础编程基础 2.4.5 数组与字符串数组与字符串1字符数组的初始化字符数组的初始化字符型数组通常有两种特殊的初始化方法,形式如下:字符型数组通常有两种特殊的初始化方法,形式如下:形式形式1:char =字符串字符串形式形式2:char =字符串字符串2字符串的基本运算字符串的基本运算1)求字符串的长度求字符串的长度2)字符串的复制字符串的复制3)字符串的连接字符串的连接第第2章章 C+编程基础编程基础 2.5 指指 针针第第2章章 C+编程基础编程基础 关于内存地址关于内存地址内存空间的访问方式内存空间的访问方式通过变量名直接访问通过变量名直接访问通过地址间接访问通过地址间接访问地址运算符:地址运算符:&例:例:int var;则则&var 表示变量表示变量var在内存中的起始地址在内存中的起始地址第第2章章 C+编程基础编程基础 2.5.1指针变量的概念指针变量的概念指针:一个变量的地址指针:一个变量的地址,用于间接访问变量用于间接访问变量指针变量:用于存放另一指针变量:用于存放另一个变量的地址的变量个变量的地址的变量声明,例:声明,例:int i;int*i_pointer=&i;引用引用例例1:i=3;例例2:*i_pointer=3;内存用户数据区内存用户数据区变量变量 i变量变量 j变量变量 i_pointer362000200020043010指向整型变量的指针指向整型变量的指针20003i_pointer*i_pointeri2000第第2章章 C+编程基础编程基础 指针变量的初始化指针变量的初始化形式:形式:数据类型数据类型 *指针名初始地址;指针名初始地址;例:例:int*p=&a;注意事项注意事项用变量地址作为初值时,该变量必须在指针初始化之用变量地址作为初值时,该变量必须在指针初始化之前已说明,且变量类型应与指针类型一致。前已说明,且变量类型应与指针类型一致。可以用一个已赋初值的指针去初始化另一可以用一个已赋初值的指针去初始化另一 个指针变量。个指针变量。第第2章章 C+编程基础编程基础 指针变量的赋值运算指针变量的赋值运算指针名指针名=地址地址“地址地址”中存放的数据类型与指针类型必须相符。中存放的数据类型与指针类型必须相符。向指针变量赋的值必须是地址常量或变量,不能是普通整向指针变量赋的值必须是地址常量或变量,不能是普通整数。但可以赋值为整数数。但可以赋值为整数0,表示空指针。,表示空指针。指针的类型是它所指向变量的类型,而不是指针本身数据指针的类型是它所指向变量的类型,而不是指针本身数据值的类型,任何一个指针本身的数据值都是值的类型,任何一个指针本身的数据值都是unsigned long int型。型。允许声明指向允许声明指向 void 类型的指针。该指针可以被赋予任何类型的指针。该指针可以被赋予任何类型对象的地址。类型对象的地址。例:例:void*general;第第2章章 C+编程基础编程基础 与地址相关的运算与地址相关的运算-*和和&*:指针运算符指针运算符,一元操作符一元操作符,表示指针所指向的变量的值。表示指针所指向的变量的值。&:取地址运算符取地址运算符,一元操作符一元操作符,得到一个对象的得到一个对象的“地址地址”。注意注意:int*p;/声明一个声明一个int型指针变量;型指针变量;cout*p;/输出指针输出指针P所指向的内容。所指向的内容。int a,b;int*p=&a;/取地址运算,非引用取地址运算,非引用第第2章章 C+编程基础编程基础 指针变量的算术运算指针变量的算术运算指针与整数的加减运算指针与整数的加减运算指针指针 p 加上或减去加上或减去 n,其意其意义是指针当前指向位置的前义是指针当前指向位置的前方或后方第方或后方第 n 个数据的地址。个数据的地址。运算的结果值取决于指针指运算的结果值取决于指针指向的数据类型。向的数据类型。指针加一,减一运算指针加一,减一运算指向下一个或前一个数据。指向下一个或前一个数据。例如:例如:y=*px+相当于相当于 y=*(px+)(*和和+优先级相同,自右向左运算优先级相同,自右向左运算)pa-2pa-1pa+1pa+2pa+3*(pa-2)*pa*(pa+1)*(pa+2)*(pa+3)*(pa-1)short*papa第第2章章 C+编程基础编程基础 指向数组元素的指针指向数组元素的指针声明与赋值声明与赋值例:例:int a10,*pa;pa=&a0;/或或 pa=a;通过指针引用数组元素通过指针引用数组元素经过上述声明及赋值后:经过上述声明及赋值后:*pa就是就是a0,*(pa+1)就是就是a1,.,*(pa+i)就是就是ai.ai,*(pa+i),*(a+i)都是等效的。都是等效的。不能写不能写 a+,因为因为a是数组首地址是常量。是数组首地址是常量。第第2章章 C+编程基础编程基础 以指针作为函数参数以指针作为函数参数传址传址:以地址方式传递数据,可以用来返回函数处理结果。:以地址方式传递数据,可以用来返回函数处理结果。实参是数组名时形参可以是指针。实参是数组名时形参可以是指针。例:读入三个浮点数,将整数部分和小数部分分别输出例:读入三个浮点数,将整数部分和小数部分分别输出#include void splitfloat(float x,int*intpart,float*fracpart)/形参形参intpart、fracpart是指针是指针 *intpart=int(x);/取取x的整数部分的整数部分 *fracpart=x-*intpart;/取取x的小数部分的小数部分 第第2章章 C+编程基础编程基础 void main()int i,n;float x,f;cout Enter three(3)floating point numbers endl;for(i=0;i x;splitfloat(x,&n,&f);/变量地址做实参变量地址做实参cout Integer Part is n Fraction Part is f endl;运行结果为运行结果为Enter three(3)floating point numbers 4.7Integer Part is 4 Fraction Part is 0.78.913Integer Part is 8 Fraction Part is 0.913-4.7518Integer Part is-4 Fraction Part is-0.7518第第2章章 C+编程基础编程基础 2.5.2 指针与字符串指针与字符串使用字符数组的形式使用字符数组的形式:char pString=I love China!;直接用字符型指针的形式直接用字符型指针的形式:char*cString=I love China!;注意:注意:(1)char*型指针变量可以在定义时进行初始化,其形式为型指针变量可以在定义时进行初始化,其形式为 char*指针变量名指针变量名=“字符串字符串”;(2)char*型的指针变量型的指针变量(或函数参数或函数参数)既可以用于接收字符串既可以用于接收字符串常量,也可以接收字符型数组。例如常量,也可以接收字符型数组。例如:char pString=I love China!;char*myString=This is a string.;myString=pString;第第2章章 C+编程基础编程基础 例例2-6 使用使用char*型指针变量重写字符串的复制。型指针变量重写字符串的复制。#include void copy_string(char*from,char*to)for(;*from!=0;from+,to+)*to=*from;*to=0;/赋值字符串结束标识赋值字符串结束标识void main()char pSource=I am a teacher.;char pDestination=you are a student.;/pDestination字符串长度字符串长度pSource字符串长度字符串长度copy_string(pSource,pDestination);coutpSourceendl;coutpDestinationendl;运行结果:运行结果:I am a teacher.I am a teacher.第第2章章 C+编程基础编程基础 C+提供了许多操作字符串数据的标准库函数,如提供了许多操作字符串数据的标准库函数,如比较字符串比

    注意事项

    本文(C++ 面向对象程序设计课件第02章 编程基础.ppt)为本站会员(qwe****56)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开