C++语言初步课件_第1页
C++语言初步课件_第2页
C++语言初步课件_第3页
C++语言初步课件_第4页
C++语言初步课件_第5页
已阅读5页,还剩63页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C++语言初步初识C++程序C++语言的基本符号C++语言的词汇C++程序的基本框架运行C++程序C++的运行环境§2.2C++语言的基本符号一、基本符号分类

每种语言都用一组字符来构造有意义的语句。C++程序是用下列字符所组成的字符集写成的:大小写英文字母:a~z,A~Z数字字符:0~9特殊字符:空格!#%^&*_(下划线)

-+=~<>/\|.,:;?’”()[]{}$@§2.2C++语言的基本符号二、基本符号的ASCII编码P31例:charcl=‘a’;

inti=cl

cout<<cl<<endl<<i;输出结果:a97§2.3C++语言的词汇一、关键字(保留字)关键字是一类有特定的专门含义的单词。

在程序中用到的其他名字(标识符)不能与C/C++的关键字有相同的拼法和大小写。关键字也不能重新定义。注§2.3C++语言的词汇一、关键字(保留字)①C++的关键字一般包含了几乎所有的C

语言的关键字说明②C++的关键字集是在不断变化的③不同版本的C++的关键字集可能不同补充:基本关键字表asmautobreakcasecatchcharclassconstcontinuedefaultdeletedodoubleelseenumexternfloatforfriendgotoifinlineintlongnewoperatorprivateprotectedpublicregisterreturnshortsignedsizeofstaticstructswitchtemplatethisthrowtrytupedefunionunsignedvirtualvoidvolatilewhile§2.3C++语言的词汇二、标识符标识符是由程序员为程序中的各种成份——

变量,有名常量,用户定义的类型,枚举类型的值,函数及其参数,类,对象等所起的名字。说明

标识符必须符合以下规则:§2.3C++语言的词汇标识符必须符合的规则:1.不能是C++关键字,如for,if,case等不可作标识符;2.标识符中字母区分大小写,如Abc与abc被认为是两个不同的标识符。而关键字不区分大小写,如for,FOR,For,foR都认为是同一关键字;3.第一个字符必须是字母或下划线;§2.3C++语言的词汇标识符必须符合的规则:4.不要太长,一般不超过31个字符为宜(太长则书写困难,反为不美);5.不能以数字开头。如C5合法,而5C则为非法;6.中间不能有空格。如map合法,而map则为非法;§2.3C++语言的词汇标识符必须符合的规则:7.变量名不能包含.;,”’+-之类的特殊符号。实际上,标识符中除了能使用26个英文字母的大小写和数字之外,只能使用下划线_。numberOfStudentnumOfStudentDx6y命名的方式决定了程序书写的风格补充:介绍几种常用的命名方式1.骆驼表示法:mycarmy_carmyCar易读,但是下划线书写困难标识符中不能出现空格补充:介绍几种常用的命名方式2.匈牙利标记法:iMycaripMycar表示整型指针变量表示整型变量在每个变量名的前面加上若干表示类型的字符§2.3C++语言的词汇三、字面常量

常量:C++程序中的常量是指固定不变的量。字面常量有名常量例如:圆周率pai=3.1416Int型常量float型常量char型常量字符串常量§2.3C++语言的词汇三、字面常量即整型常量,可用3种形式表示:⑴Int型常量:①十进制整数。如123,-456,0,79834等。

如果某个整数超出了一般整数的表示范围,系统可自动按长整型(longint)来处理。如79834L表示长整型。若此字面整数超出了长整型范围,系统将发出警告。注§2.3C++语言的词汇三、字面常量即整型常量,可用3种形式表示:⑴Int型常量:②八进制整数

以零开头的整数表示八进制整数。如0123,表示(123)8。§2.3C++语言的词汇三、字面常量即整型常量,可用3种形式表示:⑴Int型常量:③十六进制整数

以零和字母x开头或以零和字母X开头的整数表示十六进制整数。如0x123或0X123,表示(123)16。§2.3C++语言的词汇三、字面常量即实型常量,实数在C++中就是浮点数。实数有2种表示:⑵float型常量:①定点数形式:如0.123,.456,0.0等。②指数形式:如123e5,123E5都表示123×105。§2.3C++语言的词汇三、字面常量⑵float型常量:单精度(float)48f或F后缀34.5f

双精度(double)810默认34.5

长双精度

(longdouble)1019l或L后缀34.5e2L种类占用内存有效数字表示形式举例§2.3C++语言的词汇三、字面常量即字符常量,是用单引号括起来的一个字符。如‘a’,‘?’等。⑶char型常量:

C++还允许使用一种特殊形式的字符常量,即以“\”开头的字符序列,如‘\n’。注0表示一个整数值‘0’表示一个数字字符,其ASCII码等于48或0x30。§2.3C++语言的词汇三、字面常量即用双引号括起来的字符序列。⑷字符串常量:

①字符常量和字符串常量是不同的。说明HELLO‘\0’H§2.3C++语言的词汇三、字面常量即用双引号括起来的字符序列。⑷字符串常量:②不能将字符串常量赋给字符常量。例如:说明charc=“abc”;//error§2.3C++语言的词汇三、字面常量即用双引号括起来的字符序列。⑷字符串常量:说明③单个字符的字符串与字符在输出的表示上没有差别,因为字符串输出时,

C++并不把0结束符一同输出。例如:cout<<“a”<<endl;cout<<‘a’<<endl;输出结果为:aa§2.3C++语言的词汇四、运算符说明①C++语言的运算符和运算形式很丰富,要尤其注意一些包含混和操作的运算符。如++、--、+=、-=等的功能和用法。②C++语言的某些运算符有多种含义。如*的用法。(第三章详述)§2.4C++程序的基本框架一、SP框架main用户定义函数全局变量库函数入口出口

从结构设计的观点,一个C++程序由下面几个部分组成:主函数、用户定义函数、库函数、全局说明。另外还包括预处理命令和注释。§2.4C++程序的基本框架二、OOP框架

按照面向对象程序设计的思想,其主体是若干类定义的集合。理想的C++程序应由以下几部分组成:类的定义主函数注释预处理命令包括类的说明及类成员函数的类外定义程序的入口分布于程序各处把程序文件划分成若干.h和.cpp文件§2.5运行C++程序从C++源程序到可执行程序的步骤:

编辑、预处理、编译、链接、调试C++源程序C++预处理后的C++源程序目标程序可执行程序运行编辑器预处理器C++编译器链接器程序员调试出错信息第三章基本数据类型与基本运算包含简单计算的C++程序基本类型及其派生类型说明语句基本运算符§3.1包含简单计算的C++程序一、程序实例:求和#include<iostream.h>voidmain(){

inta,b,sum;//说明三个整型变量

a=43;b=37;//赋值语句

sum=a+b;//“+”、“=”是C++的算术运算符

cout<<“Thesumis”<<sum;

cout<<endl;}P55§3.1包含简单计算的C++程序二、程序实例:计算圆面积#include<iostream.h>voidmain(){constfloatpai=3.14;//说明浮点型常量

floatradius;

cout<<“Enterradius:”;

cin<<radius;floatarea=pai*radius*radius;//说明后即被赋值

cout<<“\nTheareaofcircleis”<<area<<endl;}P56§3.2基本类型及其派生类型一、C++的数据类型C++程序中的数据类型以如下不同类型的形式出现:1.基本类型2.用户定义类型3.导出类型

由系统定义。C++语言在int,float,char,void四种基本类型的基础上又给出了若干类型的派生类型。

是OOP区别于一般SP语言的主要特征之一。C++既可以定义象栈、队列、集合、布尔类型等多种数据类型,又可以结合具体问题定义象学生、汽车等类型。

由已定义类型的某种确定的方式产生的新类型,主要指数组、指针和引用类型。§3.2基本类型及其派生类型二、C++的基本类型2.float型3.char型4.void型float型数据占4个字节空间,取值范围为-3.4E(+/-)38~3.4E(+/-)38,可应用于部分运算。char型数据占1个字节空间,值集为全部基本字符,ASCII码集或扩充ASCII码集对应的全部符号。char型可看作是字符的整型,因此可参与的运算相当多。无值型。1.int型int型数据占2个字节空间,取值范围为-32768~32767,可参与几乎所有的运算。§3.2基本类型及其派生类型2.float型3.char型4.void型说明1.int型①void指没有数值的数据类型。没有任何返回值的函数应被说明为void类型。如:

void

fn();

在函数体内,可以使用return语句,但return

之后不能有任何表达式

(C++对此检查非常严格)②void也会出现在函数体说明中。如:

intg(void);

此语句说明g()是一个不需要任何入口参数的函数,并且返回一个int类型的值。C++中,也可以写成:intg();③不能把数据说明成void型,因为变量说明成没有任何值是没有意义的。④void型可以说明指针,

void指针在C++中是一种普通指针类型(传统的C

中被当成字符指针),如

void*ptr;

指针ptr可以被赋给指向任何类型的指针。§3.2基本类型及其派生类型三、基本类型的派生类型

基本类型经过简单的字长及范围放大或缩小,就形成了基本类型的简单派生类型。派生类型的说明符由int、float、char前面加上类型修饰符组成。类型修饰符包括:shortlongsignedunsingeddoubleP61§3.2基本类型及其派生类型四、enum类型

enum类型又称枚举类型,它是一种由用户参与定义的类型。其格式为:enum<enum类型名>{<枚举值表>}<枚举变量表>;enumcolor{red,blue,green,white};例§3.2基本类型及其派生类型四、enum类型⒈一个enum类型实际上是int型的一个子集,其每一个值代表一个整数。说明⒉几个枚举值全未赋值时,它们自左至右分别与整数0、1、…n-1相对应。§3.2基本类型及其派生类型四、enum类型⒊若第i个枚举值赋常量值为整数m,则未赋值的后续枚举值分别与整数m+1、

m+2对应,直到下一个赋了值的枚举值或结束。说明enumcolor{red=100,blue=200,green,white=400};§3.2基本类型及其派生类型四、enum类型⒋枚举类型的说明也可作为成组说明若干整形符号常量的方法。说明⒌C++的enum类型只有一个赋值操作,不能进行任何算术运算,也不能通过强制类型转换而直接给enum类型赋整数值。§3.2基本类型及其派生类型四、enum类型⒍定义了枚举类型之后,枚举变量的取值只能取枚举类型定义时规定的值。说明colorpaint=green;colorpaint=200;//error§3.3说明语句一、语句2.表达式语句3.控制语句4.复合语句和空语句1.说明语句§3.3说明语句一、语句2.表达式语句3.控制语句4.复合语句和空语句1.说明语句对程序中所用到的名字标识符在使用前加以定义和说明,有的还同时给与初始化。§3.3说明语句一、语句2.表达式语句3.控制语句4.复合语句和空语句1.说明语句程序中要求计算机对数据进行处理和操作的语句。§3.3说明语句一、语句2.表达式语句3.控制语句4.复合语句和空语句1.说明语句程序中用来控制语句执行次序的语句。§3.3说明语句一、语句2.表达式语句3.控制语句4.复合语句和空语句1.说明语句

复合语句是用“{”和“}”括起来的若干语句,又称为“块”或“块语句”。空语句是一个特殊的表达式语句,不做任何事情。§3.3说明语句二、常量和变量常量(constant):在程序执行过程中其值不能改变的数据称为常量。变量(variable):在程序执行过程中其值可以

改变的数据称为变量。§3.3说明语句三、常量说明const<类型名><常量名>=<表达式>;例如:constintN=2000;constfloatpai=3.14159;§3.3说明语句三、常量说明例如:constfloatpai;

pai=3.14159;//error说明⒈定义成const后的常量,程序中对其只能读不能修改,由于不可修改,所以常量定义时必须初始化。§3.3说明语句三、常量说明例如:

constintnumber=max(8,3);//error

说明⒉常量名不能放在赋值语句的左边。补充:关于#define

在编译预处理命令中使用宏替换定义符号常量的方法与用const方式定义的方法有所不同:

#definepai3.14159;

宏替换是在编译时把程序中出现的所有标识符pai都用3.14159来替换,仅仅是两个字符串的代换,并不是一个具有一定类型的常量名,随后的编译无法发现由它引起的数据类型误用的错误。§3.3说明语句四、变量说明[<存储类>]<类型名或类型定义><变量名表>;例如:

intsize,high,temp=37;staticlongsum;autofloatt=0.5;§3.3说明语句四、变量说明说明①在同一语句里不能混合定义不同类型的变量。②存储类:自动变量auto寄存器变量register静态变量static外部变量extern缺省,按自动变量处理[<存储类>]<类型名或类型定义><变量名表>;§3.3说明语句四、变量说明说明③类型名和类型定义不可缺省,用以指定数据类型。④变量名表:列出该说明语句所定义的同一类型的变量及其初值。其格式为:<变量名>[=<表达式>],<变量名表>[<存储类>]<类型名或类型定义><变量名表>;§3.3说明语句四、变量说明1.全局变量和局部变量全局变量:其说明语句不在任何一个类定义、函数定义和复合语句之内的变量。即包含在某一对“{”和“}”之外的变量。占用内存的数据区,在程序运行过程中位置不变。§3.3说明语句四、变量说明1.全局变量和局部变量局部变量:其说明语句在某一类定义、函数定义和复合语句之内的变量。即包含在某一对“{”和“}”之内,所占空间为程序运行时设置的临时工作区,以堆栈的形式允许反复占用和释放。§3.3说明语句四、变量说明2.生存期与作用域生存期:变量a的生存期是指从a被说明且分配了内存开始,直到该说明语句失去效力,相应内存被释放为止,称为该变量的生存期。全局变量的生存期局部变量的生存期§3.3说明语句四、变量说明2.生存期与作用域作用域:变量a的作用域是指a可以代表该变量的范围。#include<iostream.h>voidfn(inty)//y作用域开始{

intx=1;//x作用域开始

if

(x>y)

cout<<x<<endl;else

cout<<y<<endl;}//x和y作用域结束例1描述作用域的概念#include<iostream.h>intid=3;voidmain(){

id=5;{

intid=7;

cout<<“id=”<<id<<endl;//输出7}

cout<<“id=”<<id<<endl;//输出5}例2不同作用域的同名变量#include<iostream.h>intn;voidfn(){cout<<“m=”<<m<<endl;//errorcout<<“n=”<<n<<endl;//ok}voidmain(){doublem=3.8;

cout<<“n=”<<n<<endl;//ok

fn();}例3全局变量和局部变量§3.3说明语句四、变量说明3.

变量的存储类型⑴auto变量⑵register变量⑶static变量该变量在程序的临时工作区中获得存储空间,为默认值。当寄存器够用时,可以以寄存器作为存储空间。⑷extern变量§3.3说明语句四、变量说明3.

变量的存储类型⑴auto变量⑵register变量⑶static变量静态变量和全局变量一样,在内存数据区分配空间,在整个程序运行中不释放。说明②静态变量如未赋初值,系统将自动为其赋默认初值0(NULL)。③静态变量的说明语句在程序执行过程中多次运行或多次被同样说明时,其第一次称为定义性说明,进行内存分配和赋初值操作,在以后的重复说明时仅维持原状,不再做赋初值的操作。⑷extern变量//example1.cpp#include<iostream.h>intn;voidfn();voidmain(){n=20;

cout<<n<<endl;fn();}//example2.cpp#include<iostream.h>staticintn;//全局静态变量voidfn(){n++;

cout<<n<<endl;}运行结果:201§3.3说明语句全局静态变量使该变量成为定义该变量的源文件所独享。§3.3说明语句四、变量说明3.

变量的存储类型⑴auto变量⑵register变量⑶static变量⑷extern变量①一般用于由多个文件组成的程序中,避免重复分配内存。带extern的变量是变量声明,不是变量定义。说明②如果共同变量一次都没有定义,或者在各个文件中分别定义,造成定义多次,或者声明的类型不一致,都会造成直接或间接的错误。例如://file1.cppinta=5;intb=6;externintc;//file2.cppinta;//error:多次定义extern

doubleb;//error:类型不一致externintc;//error:无定义§3.3

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论