第2章C++语言基础.ppt
《第2章C++语言基础.ppt》由会员分享,可在线阅读,更多相关《第2章C++语言基础.ppt(133页珍藏版)》请在三一文库上搜索。
1、第 2 章 C+语言基础,版权所有 复制必究,2.1 C+概述,本节主要内容: 2.1.1 C+的主要特点 2.1.2 C+程序与C程序 2.1.3 C+对C的一般扩充 2.1.4 利用Visual C+编制和运行C+程序,C+语言是由贝尔实验室的Bjarne Stroustrup 在1980年创建的。自90年代后,C+越来越受到重视并得到广泛的应用。,2.1.1 C+的主要特点,C+是由C扩充而来,因此,除了与C兼容,C+还继承了C的以下特点:丰富的运算符和数据类型、结构化的程序设计方法、高效的机器代码、良好的可移植性。 支持面向对象程序设计的方法。 C+的错误检查机制强,提供了专门的机制检
2、查类和异常处理功能。 C+有很多成熟的编译器:Visual C+、Inprise(被Borland兼并)的C+ Builder、Borland的Borland C+和IBM的VisualAge C+。,2.1.2 C+程序与C程序,C语言程序: /* 这是一个简单的C程序: simple.c */ #include void main(void) printf( “ Hello World !n “ ) ; / 输出字符串 用C+语言编写同样功能的程序,C+语言程序: / 这是一个简单的C+程序:simple.cpp #include void main(void) cout“ Hello W
3、orld !n “; / 输出字符串 ,程序运行后在屏幕上输出: Hello World !,(1)C+程序与C程序的结构完全相同。 (2)C源程序文件的扩展名为C,C+源程序文件的扩展名为CPP。 (3)C注释使用符号“/*”和“*/”,表示符号“/*”和“*/”之间的内容都是注释;C+除了支持这种注释,还提供了一个双斜线“/”注释符,表示“/”之后的本行内容是注释,注释在行尾自动结束。 (4)C程序所包含的标准输入、输出的头文件是stdio.h,输入、输出通常通过调用函数来完成;而C+程序可以包含标准输入、输出流的头文件iostream.h,输入、输出可以通过使用标准输入、输出流对象来完成
4、。,C+程序与C程序的比较:,一个C+程序可以由多个函数构成; 每个程序都从主函数main()开始执行,从主函数返回时结束执行; 组成程序的语句主要包括声明语句和执行语句; 声明语句用于声明变量和函数,变量声明语句说明变量的名称和数据类型,函数声明语句说明函数的名称、参数类型和返回值; 执行语句包括:赋值语句、表达式语句、函数调用语句和流程控制语句等,它们写在一个函数中(包括主函数)。 例,C+程序基本结构:,例 输入一个学生三门课的成绩,计算其平均值,并根据其值输出评语。,#include void main() int math, chem, phy, ave; coutmathchemp
5、hy; ave=(math+chem+phy)/3.0+0.5; / 0.5用于四舍五入 if (ave=90) / 使用ifelse if语句 cout=60 ,2.1.3 C+对C的一般扩充,(1)当函数定义放在函数调用之后时,C程序函数原形(function prototype)有时可省略,而C+函数原形(声明)必不可少。一个不带参数的C函数原形必须使用void,而C+可以使用空参数列表。C+还要求函数所有参数在函数原形的圆括号中声明。 (2)在C语言中,函数和语句块(花括号“”之间的代码)的所有变量声明语句必须放在所有执行语句之前。而C+中变量声明语句不要求放在函数和语句块的开始位置,
6、可以把变量声明放在首次使用变量的附近位置,这样可提高程序的可读性。,2.1.3 C+对C的一般扩充,(3)C+用new和delete运算符取代C的内存分配和释放函数malloc()和free()。 (4)标准C+提供了字符串类,可以替代C函数库中的字符数组处理函数。 (5)进行输入、输出操作时,C+用控制台输入、输出流对象(在头文件iostream.h中进行了类的声明)替代C的stdio函数库,利用“”流提取运算符或“”流插入运算符,分别将数据对象从输入流提取出来或插入到输出流,从而完成数据的输入和输出。 使用C+面向流的输入、输出方式提高了程序的可读性,减少了错误的发生。 例,例 编写程序利
7、用标准输入流接收用户从键盘输入的数据,利用标准输出流将运算结果输出到屏幕。,#include / 使用输入、输出流 void main(void) coutxyz ; / 从键盘读取数据给变量x、y、z cout“The sum is “x+y+zn ; / 输出结果 ,程序运行的结果为: please enter the value of x , y , z :2 4 6 The sum is 12,2.1.4 利用Visual C+编制和运行C+程序,(1)启动Visual C+,执行“File|New”菜单命令,在New对话框的Projects页面左侧项目类型列表中选择Win32 Con
8、sole Application项,在对话框右侧的Location和Project Name框中分别输入路径和项目名称,单击OK按钮。,(2)进入Win32 Console Application step-1 of 1对话框,选择An Empty Project项,单击Finish按钮。最后在New Project Information对话框单击OK按钮完成项目的建立。,(3)建立和编辑C+源程序文件。执行“Project|Add to Project|New”菜单命令,在New对话框的File页面选择C+ Source File项,在File框中填入C+源文件名,确认选择Add to p
9、roject,单击OK按钮将打开文本编辑器。输入并编辑C+源程序代码。,(4)建立可执行程序。执行“Build|Build”菜单命令(快捷键F7)即可建立可执行程序,若程序有语法错误,则在屏幕下方的输出窗口中显示错误信息。,(5)执行“Build|Execute”菜单命令即可在伪DOS状态下运行程序,也可进入DOS状态后运行已建立的程序。 注意不能在Windows中直接运行一个控制台程序。 也可采用另一种简单的方法编写C+程序,即执行“File|New|Files|C+ Source File”菜单命令直接创建一个C+源文件,在执行Build命令时再建立项目工作区。,作业:P60,2-2,2-
10、3 上机作业:P63,2-43,2-44,2.2 C+程序基本要素,程序由语句组成,语句由基本要素组成。任何一种程序设计语言都有自己的一套语法规则以及按照语法规则构成的元素,程序基本要素就是这样一种具有独立语法意义的元素。C+程序基本要素主要包括标识符、关键字、常量、变量、运算符和表达式等。,2.2.1 标识符,标识符是程序员或系统定义的符号,用以标识变量、函数、对象等。 标识符由字母、数字和下划线组成,它必须以字母或下划线开始。 为标识符取名时,尽量使用能够反映其用途的单词或缩写,这样可提高程序的可读性。,例如: x,y,sum,length,Area,Myfun,m_xPos,CPerso
11、n,person1,2.2.2 关键字,关键字是C+编译器预定义的、具有固定含义的保留字,在程序中它们不能被作为一般的标识符使用。 C+增加了C不具有的关键字,并且不同C+编译器含有不同的关键字。,例如: auto,bool,break,case,char,class,const,continue,default,delete,do,double,else,enum,extern,false,float,for,friend,goto,if,inline,int,long,new,operator,private,protected,public,return,short,signed,siz
12、eof,static,struct,switch,template,this,true,try,typedef,union,unsigned,using,virtual,void,while,2.2.3 常量和变量,在程序中使用的数据有常量和变量两种形式; 常量是不能被程序改变的固定值; 变量是可以被程序改变的数据。 常量和变量的主要区别在于:常量不占内存空间,不能为常量赋值;而变量需要占内存空间,可以给变量赋不同的值。 不管常量还是变量,程序中使用的每一个数据都属于一种特定的数据类型。 在使用变量之前,必须先利用标识符声明变量。 变量声明的形式,变量声明的一般形式如下: =, =, ;,变量
13、声明语句说明了变量的名称和数据类型,程序中通过变量名来存取其中的数据,数据类型定义了变量的存储结构和可以进行的运算。编译程序要为声明的变量分配存储空间,并可以给变量赋一个初始值。 例如: int x; float radius=123.56 int x, y=100;,2.2.4 运算符和表达式,运算符: 运算是对数据进行加工的过程,表示各种不同运算的符号称为运算符,而参与运算的数据称为操作数。 运算符实质上是系统预定义的函数名,而进行运算就是调用一个函数。 按运算符和操作数的运算性质,运算符可分为算术运算符、逻辑运算符、关系运算符和其它运算符(见表2-1)。 例如:+、-、*、/、%、+、(
14、)、=、+=、-、&、=、new、delete,例如:x+y,area=PI*radius*radius, (ab) & (x=y),表达式: 一个表达式由常量、变量、函数调用和运算符组成,每个表达式都将产生一个值,并且具有某种类型(称为该表达式的类型)。 表达式隐含的数据类型取决于组成表达式的操作数的类型。 当表达式中的操作数都是常量时,称这个表达式是常量表达式。 在对一个表达式求值时,优先级高的运算符先运算,优先级低的运算符后运算。 运算符的结合性:右结合性和左结合性,2.3 C+数据类型,数据是程序加工的对象。C+将数据分为不同的数据类型,不管常量还是变量,它们都属于某一种数据类型。数据
15、类型规定了数据的存储结构和可以进行的运算。 C+中的数据类型分为:基本数据类型、指针类型和构造类型三大类。构造类型包括数组、结构和枚举等类型。,2.3.1 基本数据类型,基本数据类型是C+预定义的数据类型,C+的基本数据类型包括字符型、整数型、实型(单精度和双精度)和无值型。 每种基本数据类型都使用一个关键字来表示,如char、int、float、double和void等(见表)。 数组、指针和类等派生数据类型是程序员按照C+的语法要求在基本数据类型基础之上建立起来的。 除void数据类型以外,其它基本数据类型加类型修饰符signed、unsigned、short和long。 例,例: int
16、 num, total; float v, r, h; int a=3; / 等价于:int a(3); char c=A; long lx=12345678; unsigned int nWidth;,可以使用运算符“( )”进行强制类型转换: float x=123.56; int i=(int)x; / i=123,2.3.2 const常量类型,const常量类型表示一个“常值变量”,即值不能被改变的变量。 声明一个const型变量只需在数据类型说明前加上关键字const。例如: const int size=20 ; 用const声明的变量必须用常量或常量表达式初始化。一旦变量被声明
17、为const型,禁止任何试图修改该变量的操作。如果知道一个变量赋初值后在生命周期里其值不变,用const限定该变量是程序设计的好习惯,如数组长度。,前面介绍了基本数据类型,后面开始介绍指针类型和构造类型,包括数组、指针、字符串、结构和枚举等类型。,2.3.3 数组,数组属于构造类型,它是一组具有相同类型数据的有序集合,其中每个数据称为数组的元素。数组按其下标的个数分为一维数组、二维数组和多维数组。 一维数组的声明方式如下: 常量表达式; 二维数组的声明方式如下: 常量表达式 常量表达式; 数组名后括号中的常量表达式表示数组的长度,即数组所包含元素的数量。 例如. . .,数组声明语句: flo
18、at score30; / 数组score有30个元素,其数据类型是float型 int Array124; / 数组Array有124个元素,其数据类型是int型,数组的使用: 数组声明后,可以引用数组每个元素,但不能一次引用整个数组。数组元素作为一个简单的变量对待。数组元素的引用方式如下: 下标表达式 下标表达式 下标表达式,注意: 数组元素的下标从0开始,直到数组长度减1,如:score0,score1,score29。 在编译C+源程序时,为了保证程序编译和运行的效率,C+编译系统不对数组下标进行越界检查,程序运行时系统也不会提出越界警告。因此在对数组元素进行操作时应格外注意,以免破坏
19、其它存储单元的数据,否则可能造成不可预料的后果。,数组的初始化 声明数组时可以用一个用花括号括起的常量列表对数组进行初始化,例如: float grade3=90.0, 75.0, 85.0; 二维数组和多维数组的初始化可以按照数组的排列顺序或分行赋初始值的方法。例如: int a23=2, 4, 6, 8, 10, 12; / 按数组的排列顺序 int a23=2, 4, 6,8, 10, 12; / 分行赋初始值 其中,2、4、6分别为a0的元素a00、a01和a02的初始值。,数组的初始化 初始值的个数可以比数组元素的个数少,这时未提供初始值的元素被置为0。例如: int a23=2,
20、4, 6; 当提供全部的初始值时,数组第一维的长度可以省略。例如: float grade = 90.0, 75.0, 85.0; int a 3 = 2, 4, 6,8, 10, 12; 数组使用举例,例 输入10个学生某门课的成绩,然后按与输入次序相 反的顺序输出成绩。 #include void main() int i; float score10; coutscorei; / 输入数据 cout=0; i-) coutscorei ; / 逆向输出结果 coutn; ,2.3.4 指针,任何变量都有一个内存地址,这种地址称为指针,而指针变量是一种存放内存地址的变量。每一个指针变量都有
21、相应的数据类型,该类型用以说明指针所指内存单元中存放的数据的类型。 指针变量声明的一般形式为: * ; 符号“*”是指针类型说明符,声明变量是一个指针型变量。例如: int* pointer ; int *pointer ; / 两条语句功能相同,与指针有关的运算符,有两个与指针有关的运算符:取地址运算符“”和指针运算符“*”; 运算符“”用于取一个变量的地址; 运算符“*”以一个指针作为其操作数,其运算结果表示所指向的变量; “”运算和“*”运算互为逆运算。 指针使用举例,例 指针的使用。,#include void main() int a, b, *pa, *pb; a=10; b=20
22、; pa= 运行结果,程序运行结果: 10,20 20,10 200,100,如果先声明了变量,就可以在声明指针变量时对指针进行初始化。如下所示: int a, b; int *pa=,指针与数组,指针与数组关系密切,编程时可以用指针代替下标引用数组元素,指针使数组的使用更为灵活、有效; 当声明一个数组后,编译程序会按照数组的类型和长度为它分配内存空间,数组名表示数组在内存中的首地址; 当用一个指针变量存储数组首地址时,该指针就指向这个数组,就可以通过指针运算间接访问数组的元素。 例,例2 利用指针引用数组的方法求一个数组中所有元素之和。,#include void main() int a
23、=2, 4, 6, 8, 10; int* pa=a; / 或pa= ,2.3.5 字符串,C+语言没有提供字符串类型,字符串变量是作为一维字符数组来处理。 字符串末尾必须加上一个字符串结束符“0”,但“0”不是字符串的有效字符,求字符串的长度时不能将它计算在内。 对于字符串常量(用一对双引号括起来的字符序列),C+编译程序自动在字符串的末尾加上字符0,因此,可以直接用一个字符串常量来初始化一个字符数组。 例如 . . .,例:字符串的初始化 char s =“Hello“; 初始化后,字符数组中每个元素的初始值如下: s0=H,s1=e, s2=l,s3=l, s4=o,s5=0。 该字符数
24、组长度为6,但字符串长度为5。,转义字符“”的使用: 由于双引号用作字符串的界限符,所以在字符串中必须以转义字符“”表示双引号。例如:“Please enter “good“,编译器将这个字符串解释为:Please enter “good“。,通过指针使用字符串: 可以通过指针引用字符数组,即可以通过指针来使用字符串。初始化语句可写为: char* ps=“Hello“; 例,例 输入一个字符串,计算字符串的长度。,#include void main(void) char* pStr1=“Enter a string:“; / 使用字符指针 char* pStr2=“The length o
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 语言 基础
链接地址:https://www.31doc.com/p-3423411.html