C-C++程序设计教程课件_第1页
C-C++程序设计教程课件_第2页
C-C++程序设计教程课件_第3页
C-C++程序设计教程课件_第4页
C-C++程序设计教程课件_第5页
已阅读5页,还剩48页未读 继续免费阅读

下载本文档

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

文档简介

1

一、机器语言、汇编语言和高级语言

二、C语言的历史与特点

三、从C语言到C++语言的进化

四、计算机结构的五个主要单元

五、C/C++程序的实现

六、C/C++源程序的基本形式第一章绪论C-C++程序设计教程课件全文共53页,当前为第1页。2一、机器语言、汇编语言和高级语言计算机系统包括硬件与软件两部分。软件是维护计算机硬件系统进行多用途计算的各种程序的总和。硬件是计算机系统的躯干,软件是计算机系统的灵魂。计算机语言是驾驭软件开发的一套语法规则,这套语法规则的具体实现又是通过称之为编译器的软件来完成的。因此硬件、软件与计算机语言的历史是交叉耦合地进化的过程。C-C++程序设计教程课件全文共53页,当前为第2页。3计算机程序设计语言可以归为如下三类:

a.机器语言:硬件系统可识别的的原始语言;开发软件难度大、周期长;程序员记忆的困难。

b.汇编语言:直接处理所有硬件;是各种语言中最快又最有效的语言;容易理解、记忆。

c.高级语言:屏蔽低级语言硬件细节的语言,一个模块对应汇编语言中一系列整体运行的指令。C-C++程序设计教程课件全文共53页,当前为第3页。4FORTRANFORTRAN77FORTRAN90BASICANSI-BASICQBASICVISUAL-BASICDELPHIPASCALALGOLALGOL68SIMULA67SMALLTALKC++JAVAC#BCPLBC

图各种语言的发展演化进程C-C++程序设计教程课件全文共53页,当前为第4页。5二、C语言的历史与特点

C语言是从BCPL(BasicCombinedProgrammingLanguage)语言和B语言演化而来;集汇编语言处理硬件细节和高级语言模块化高效编程长处于一身;

它介于低级的汇编语言与高级的FORTRAN语言之间;

C语言既有面向系统如汇编语言一样直接访问硬件的快捷功能,又同时具备高级语言面向用户、容易记忆、清晰灵活的优点,可称之为高级的汇编语言。

C-C++程序设计教程课件全文共53页,当前为第5页。6三、从C语言到C++语言的进化首先C++是一个更好的C语言,是C的一个超集,C++保留了C语言的优点同时也吸收其它面向对象编程语言的长处。Stroustroup博士早期(80年代初)通过一个名为cfront的转换程序将C++源程序处理成C源程序,这保证转换后的代码能在任意支持C的编译系统中运行。

C++语言的主要特点表现在:

一、是全面兼容C语言;

二、是支持面向对象的编程方法;C++是典型的混合编程语言.C-C++程序设计教程课件全文共53页,当前为第6页。7C语言不简单(C语法是简单的),C++语言本质上也不更多复杂。但C++语言包容了许多面向对象的语法和概念,提高了该语言处理复杂问题的抽象层次;面向对象编程提供了进行驾驭大型软件开发的有力手段,对于程序的重用和可维护性提供了新的理论支持。 最关键的是解决问题,语言仅是一种手段。

C++语言至关重要的是它并不将面向对象编程的语法手段强制程序员使用,C/C++程序员可以将C++视为一个C语言的改良版本,充分利用C++语言子集的卓越性能进行游刃有余的编程,进行面向问题的软件开发。积累了一定具体的经验之后再适当步入面向对象的动态世界。C-C++程序设计教程课件全文共53页,当前为第7页。8四、计算机结构的五个主要单元

软件的开发必须与计算机的体系结构打交道,与程序设计相关的计算机结构是下面的五个主要单元:

1.

输入单元:输入单元是计算机接受信息的部分并且与计算机完成信息的交互。它从各种输入设备读取中断信息,同时把这些信息放置在其它处理信息的单元中。有两种常用的输入信息的设备,一个是键盘,另一个是鼠标。标准输入stdin常指设备键盘。C-C++程序设计教程课件全文共53页,当前为第8页。9

2.

输出单元:

输出单元是计算机输出信息的部分。它将计算机处理的信息或数据送入各种输出设备中,从而这些信息能够有效的阅读。有两种常用的输出信息的设备,它们是屏幕显示器与打印机。标准输出stdout指显示器,标准打印stdprn指打印机。C-C++程序设计教程课件全文共53页,当前为第9页。10

3.

中央处理单元:

中央处理单元是计算机的核心硬件部分CPU,CPU本身由算术逻辑部件、控制逻辑部件和一组工作寄存器构成。算术逻辑部件ALU用来进行算术逻辑运算,控制逻辑部分负责对全机的管理,包括从存储器取出指令,对总线及输入输出设备的数据转送控制等。寄存器是CPU中的存储单元,用来存放算术逻辑部件处理的中间结果,包括对存储器的寻址等。存储器是下面的内存单元。C-C++程序设计教程课件全文共53页,当前为第10页。11

4.

内存单元:

内存单元由称之为内存条的硬件作为物理载体,是计算机中存取速度快的存储信息的部分。程序的数据与代码指令动态地保存在内存中,内存的记忆性能是瞬态稳定的,关机则意味着内存信息的彻底消失,内存信息必须永久性地保存到外存上。

5.

外存单元:

外存单元是计算机用来长期保存数据信息的存储部分,与计算机软件相关的信息在关机状态都必须有效地存放在外存中。常见外存设备是软盘、硬盘、闪盘和光碟。C-C++程序设计教程课件全文共53页,当前为第11页。12五、C/C++程序的实现

C/C++程序的实现是通过软件开发工具进行的,目前流行的软件开发工具以VisualC++6.0和C++Build5.0为代表。本书程序利用VisualC++6.0进行开发,其本身是优秀的可视化编程开发工具。

VisualC++6.0开发的程序只能是32位应用程序,即内存地址的寻址方式为32寻址。所有语言源程序的实现都必须经历下面四个步骤:1.编辑2.翻译3.连接4.运行C-C++程序设计教程课件全文共53页,当前为第12页。13

1.编辑:

编辑是根据计算机语言的语法规则将算法与相应的数据输入到计算机中形成含原始代码的文本文件的过程。这一文本文件或源文件对于C编程方式以扩展名即.c的文件保存,C++编程方式以扩展名即.cpp的磁盘文件保存。

通常C++源程序的文件为两部分:接口文件(也称为头文件)和实现文件(或源文件),C++头文件的标准扩展名为.h,C++实现文件的标准扩展名为.cpp,系统最终将头文件插入到实现文件中即源文件.cpp中。文本是指由字母、数字、符号等组成的明白可读的字符信息,文本编译器可以用来建立、输入或修改文本。C-C++程序设计教程课件全文共53页,当前为第13页。14

2.翻译:

高级语言的翻译程序有两种方式:一种是编译型的程序,另一种是解释型的程序。低级的汇编语言翻译程序对应一个汇编程序,汇编程序直接将汇编语言转换成机器语言,然后加工处理成目标代码,转换的中间环节最少。编译型的翻译方式为先把高级语言翻译成机器语言然后再将汇编语言翻译成机器语言。如FORTRAN、C和C++是编译型的程序。解释型的翻译方式是直接把高级语言在机器上运行,一边解释一边执行,如BASIC和JAVA是解释型的程序。C-C++程序设计教程课件全文共53页,当前为第14页。15

编译型方式的优点是运行效率快、执行时间短;解释型的长处是占用内存少。

3.

连接过程:

连接过程是由连接程序进行的。连接程序用来把编译阶段分别编译产生的目标文件、系统原先提供的库文件或其它中间列表信息文件或二进制资源文件等连接在一起,形成一个整体运行的扩展名为.exe的执行程序。连接过程可以进一步发现在编译阶段未能捕获的错误,如某个函数模块的遗漏,标识符的重复定义等。库文件有静态连接库和动态连接库,扩展名各自为.lib和.dll。C-C++程序设计教程课件全文共53页,当前为第15页。16

4.

加载运行:

加载运行就是将执行程序从外存如硬盘或光碟中的机器指令转送到内存储器,以便机器执行;程序在执行之前必须先装入内存,对于大的程序操作系统根据系统的内存资源可能只将高频使用的部分代码装入内存。预处理编译过程常称为编译时,连接过程称为连接时,加载运行过程称为运行时。常用编译器一词笼统地指编译、连接和运行三个过程,因为集成开发环境对这三个过程可以通过一个命令一次连续的执行。C-C++程序设计教程课件全文共53页,当前为第16页。17六、C/C++源程序的基本形式

程序设计语言有各自编写的形式。汇编语言具有指令加左操作数和右操作数的形式,表现了该语言与机器语言的直接贴近。

C/C++源程序书写格式非常灵活,一条语句可以分散在不同的行上也可以将许多语句压缩在单行上。C-C++程序设计教程课件全文共53页,当前为第17页。18[例]程序的分散表示。程序输出:Nothingishardintheworld#include<stdio.h>voidmain(void/*圆括号中的void明确表示无入口参数*/){ /*printf("/*世上无难事*///\t");*/printf("Nothingishard""intheworld\n");}//end"Nothingishard""intheworld\n"合并为"Nothingishardintheworld\n",程序输出双引号内的字符串,

printf是输出库函数。按回车键在源程序产生看不见的字符,简称换行符或硬回车,“\n”是换行符的转义序列,表示在屏幕上产生一个回车换行动作。C-C++程序设计教程课件全文共53页,当前为第18页。19[例]程序的压缩表示。

#include<stdio.h>voidmain(void){/*printf("世上无难事\t");*/printf("Nothingishardintheworld\n");}//end去掉斜杠星号/*------*/对,可以得到一个改进的程序。程序依然输出结果:

Nothingishardintheworld

C-C++程序设计教程课件全文共53页,当前为第19页。20[例]程序改动一些注释。输出:

/*世上无难事*///Nothingishardintheworld#include<stdio.h>voidmain(){printf("/*世上无难事*///\t");//"\t"是水平制表的转义序列,表示水平跳过8个空格

printf("Nothingishardintheworld\n");}

从上面三个例子可以看出C/C++程序外在格式的灵活性,有展开的可读性强的形式,也有浓缩的节省纸张的形式,可用回车键、空格键和删除键在扩伸与压缩之间变换。C-C++程序设计教程课件全文共53页,当前为第20页。21

一个空格可以扩展为多个空格,多个空格可以浓缩为一个空格。一条语句可分散在多行上,一行可以写多个语句,语句由分号结束。但空格或空行的增删不是任意的。变量名函数名关键字如if,int等名称之间、带参的宏名与圆括号之间、续行符\之间、转义序列如\n之间、运算符如++,+=之间不能插入空格。字符串中的空格和换行符视为有效字符。作为名称或运算符之间分隔的空格是不能删除的。例如:

x+++y不同于x+++y#definex3不同于#definex3

除此之外的空格和空行一般是可以任意设置的。C-C++程序设计教程课件全文共53页,当前为第21页。22C/C++的程序内在的格式由如下几个方面构成:

1.#include预处理指令引入的头文件

2.main()函数表示的dos或console模式下应程序的入口

3.

花括号对“{}”表示程序的结构层次范围

4.

分号“;”结束的表达式语句或函数调用语句

5.

多行注释"/*------*/"或单行注释"//-----"

C-C++程序设计教程课件全文共53页,当前为第22页。23

由井字号“#”引入的指令为预处理指令,对应的预处理语句不以分号“;”结尾,“#include”称为文件包含预处理指令,通过该指令系统将其后程序段使用的名称进行了预先的说明。

#include<stdio.h>的作用是将stdio.h文件在预处理阶段插入到程序.cpp中,作为程序源文件的一个有机部分。“#include”指令是代码重用的有效手段。stdio.h是标准输入输出头文件,其中包含了printf,scanf函数的原型说明。

printf函数和scanf函数是C运行库函数。 C-C++程序设计教程课件全文共53页,当前为第23页。24

当编译器编译某条printf语句时,编译器根据#include<stdio.h>可以知道printf是一个函数名,这样在目标程序里为该例程建立一个入口,但编译器并不知道库函数在哪里。连接程序会扫描库函数并在目标程序中插入对这些库函数的正确调用。如果在相应的子目录中没有扫描到由函数名printf指示的库函数,则连接程序会提示一个错误。C-C++程序设计教程课件全文共53页,当前为第24页。25main()是文本编程模式下的入口函数,WindowsAPI编程模式下的入口函数为WinMain,main函数的前面void表示该函数没有返回值,圆括号“()”中的void表示系统不从环境中读取输入值。

main函数或其它函数必须存在匹配的花括号对"{}"。匹配按就近原则进行,右花括号"}"向前或向上或向右匹配距离最近的左花括号"{"。花括号对"{...}"之间是若干条语句。配对的花括号与其间的语句一起可视为一条语句,称为程序块。最外层的左花括号"{"标志函数体的开始,相应的右花括号"}"是该函数的结束,其后不再跟分号";"。C-C++程序设计教程课件全文共53页,当前为第25页。26

C/C++程序最重要的一个语法现象就是分号“;”,一个单独的分号“;”本身就是一个语句,语句是构成程序的基本单元。大量的语句由表达式加上分号构成,称为表达式语句。其它语句如选择语句、控制语句等大都与分号发生联系,分号是语句的必要成分又是语句与语句之间的分隔标志。编译器通过扫描分号对复杂的流程进行断句处理。前面例子中的语句:

printf("Nothingishardintheworld\n");

该语句由两部分组成,一是函数调用,另一个是分号";"。称为函数调用语句,指示计算机执行相应的动作,即将双引号括起来的字符串打印到屏幕上。C-C++程序设计教程课件全文共53页,当前为第26页。27C++程序中注释有两种形式:

多行注释即斜杠星形式"/*...*/"和C++语言新引进的单行注释"//..."形式。

C++在预处理阶段就将注释所含盖的字符化为空白。多行注释即斜杠星形式"/*...*/"忽略始于"/*"之后所有文本内容,直到发现"*/"为止。"/*"向后或向下匹配距离其最近的"*/",其间的内容包括定界符/*...*/本身被处理为空白。

"/*...*/"形式的注释不嵌套使用,注释字符"/*---*/"和"//"在字符串或注释内部没有任何特殊意义。

注释不应插在标识符或名称的中间,以避免一个名称被分隔为两个标识符。a.C-C++程序设计教程课件全文共53页,当前为第27页。28

单行注释“//-----”形式忽略其后的内容直到本行结束,即包括双斜杠在内的其后的文本被处理为空白。如下的注释为两个不同的单行注释://******

语句序列;//*/对语句序列不起作用即程序保留语句序列的执行功能。如下的注释属于单独的多行注释:/******

语句序列;//*/b.C-C++程序设计教程课件全文共53页,当前为第28页。29

通过增删上面的斜杠/可以对其间选定的程序段起到去留的切换作用。斜杠星形式"/*------*/"斜杠与星号必须紧贴在一起才起作用,利用这一性质可以灵活控制程序段的去留。注释是编译器不予保留的文本,是关于软件代码的细节说明。注释不是必须的编程部分,对于程序的运行没有丝毫的关系。C-C++程序设计教程课件全文共53页,当前为第29页。30七、函数初步

C/C++程序通过函数运转,函数操作数据和变量。程序根据源代码出现的先后次序一个一个语句地顺序往后执行,称为顺序流程结构。遇到函数调用则流程转入被调用的函数体,然后从被调函数返回,执行函数调用的下一条语句。在编辑输入上面的代码时请注意:新的集成开发环境支持汉字出现在字符串中,但汉字环境的标点符号与英文环境的标点符号其编码是不一样的,因此在字符串之外的标点符号一定要保证在英文环境中输入,否则导致源代码的语法错误。

C-C++程序设计教程课件全文共53页,当前为第30页。31[例]C流文件及函数调用实现顺序流程

#include<stdio.h>//void型函数vf的定义,放置于主控函数前

voidvf(intx,inty,ints)//void表示函数没有返回值,形参x,y,z是int型的变量

{printf("%d,%d\n",x+y,s);}//花括号包含的语句表示函数体

intAdd(int,int);

//Add函数原型说明,表示入口形参为2个int型数据,返回int型数据

voidShow()//圆括号中一无所有表示入口无参,voidShow()相当于voidShow(void){printf("输入两个整数\t");}C-C++程序设计教程课件全文共53页,当前为第31页。32intmain(void)

//圆括号中的void表示main函数此时没有入口参数,返回int型数据

{inti,j,sum;/*变量定义语句*/Show();/*提示输入两个整数*/scanf("%d,%d",&i,&j);/*读入整数分别给变量j,k*/sum=Add(i,j);/*函数调用求和*/printf("Sumis%d\t",sum);/*屏幕上显示出和*/vf(i,j,Add(i,j));//vf(i,j,Add(i,j))等价于vf(i,j,sum);return1;/*返回信息给操作系统是好的编程风格*/ }C-C++程序设计教程课件全文共53页,当前为第32页。33intAdd(intl,intm)/*定义Add函数,函数的返回类型为整型*/{/*入口参数l,m是整型*/returnl+m;/*直接返回l,m数的和*/}//函数调用Add(i,j)根据返回类型确定为int型的表达式执行程序得到:输入两个整数5,6Sumis1111,11C-C++程序设计教程课件全文共53页,当前为第33页。34

在编辑输入上面的代码时请注意,新的集成开发环境支持汉字出现在字符串中,但汉字环境的标点符号与英文环境的标点符号其编码是不一样的,因此在字符串之外的标点符号一定要保证在英文环境中输入,否则导致源代码的语法错误。本程序包括用户定义的函数:主函数main()和普通的函数Add以及vf。另外借用了系统提供的库函数。在"stdio.h"给出了标准输入函数scanf标准输出函数printf的原型说明。

Add函数的作用是求两个整型变量的和,return关键字所引出的语句将整型变量l和m的和返回给主函数main,返回值是通过函数调用的方式进行的。C-C++程序设计教程课件全文共53页,当前为第34页。35程序主要包括如下6个步骤:

1.

变量的定义

2.

变量的初始化过程

3.

用户与计算机实时交互

4.

算法的模块化处理函数

5.

函数调用的虚实结合匹配

6.

控制权的带信息返回C-C++程序设计教程课件全文共53页,当前为第35页。36

C/C++程序设计中变量必须明显地定义才能使用,这一点区别于FORTRAN语言存在变量的隐含说明。语句"inti,j,sum;"称为变量定义语句,"int"是系统保留的关键字,"i,j,sum"则是用户引入的变量,变量定义语句通知编译器为这些变量分配内存空间。对引入的变量赋予初值,称为变量的初始化。变量初始化的位置和时刻是灵活的,变量的初始值可以位于本程序段内、硬盘上或动态交互输入。函数调用的虚实结合匹配是指函数定义部分的形参与函数调用时的实参一对一的呼应和结合过程,这一过程涉及到语言隐含的函数调用机制。C-C++程序设计教程课件全文共53页,当前为第36页。37C语言中的函数调用机制为变量的数值传递,因此虚实结合匹配的时候采用了一个中转站这就是变量的地址。通过中转站间接的完成被调函数对变量的赋值或改变。输入语句"scanf("%d,%d",&i,&j);"在屏幕上读变量i和j的值,变量i和j之前分别加上了取地址运算符&。而输出语句"printf("Sumis%d\n",sum);"的变量sum前则没有取地址运算符&。

"%d,%d"是输入输出的格式化字符串,用来指示输入输出的数据类型和格式转换,"%d"表示十进制整数类型,有了这种格式化转换函数,系统就把内存中的二进制数据转换成用户可理解的数据类型。C-C++程序设计教程课件全文共53页,当前为第37页。38

函数是重要的编程手段,其中包括三个相关的步骤:

1.

函数具体定义

intAdd(intl,intm){returnl+m;}//l,m是形参,

2.

函数原型说明

intAdd(intl,intm);//形参的初始值在虚实结合时得到

3.

函数调用虚实结合匹配

sum=Add(i,j);//i,j是匹配形参l,m的实参C-C++程序设计教程课件全文共53页,当前为第38页。39

函数定义对应函数的某种执行动作,函数定义由标题头和函数体构成,标题头由返回类型、函数名和形参列表构成。例如:

intAdd(intl,intm)是标题头,{returnl+m;}是函数体函数原型表明函数的接口要求,虚实结合匹配在函数调用点进行,函数调用时将实参i,j的值赋值给相应形参l,m;相当于l=i,m=j。函数的返回类型int与return中的表达式匹配。一般地,C/C++程序是通过变量和函数来组织的。变量用于识别内存的数据,函数则对这些数据进行操作和转换处理。C-C++程序设计教程课件全文共53页,当前为第39页。40

文本编辑器

编译器源文件1.cpp头文件2.h头文件1.h源文件2.cpp

连接器

库文件.lib其它目标文件.obj目标文件1.obj目标文件2.obj编译错

执行程序.exe连接错

预处理器运行错

成功!!

修改当前的源文件错误解决各文件名称唯一性或遗漏排除逻辑错误或越界、内存冲突等图C/C++程序的开发过程C-C++程序设计教程课件全文共53页,当前为第40页。41

一般地,C/C++程序是通过变量和函数来组织的。变量用于识别内存的数据,函数则对这些数据进行操作和转换处理。函数根据返回类型是否有值分两类,其定义格式分两种:

1.

不返回值的函数,称为void型的函数

voidvf(类型1形参1,类型2形参2,.…,类型n形参n){语句序列;

return;//函数体

}例:

voidvf(intx,inty,ints){printf("%d,%d\n",x+y,s);}C-C++程序设计教程课件全文共53页,当前为第41页。42

2.

返回确定类型值的函数

typef(T1v1,T2v2,...,Tnvn){/*返回类型函数名(形参列表)*/

语句序列;

returnexpre;}

例:

intAdd(intl,intm){intz=l+m;returnz;}type表函数的返回类型,T1,T2,Tn表示形参的类型名,它们可以是int,double以及结构名等;f,vf,Add是函数名。C-C++程序设计教程课件全文共53页,当前为第42页。43"返回类型函数名(形参列表)"称为函数定义的标题头,标题头圆括号中形参类型后的参数v1,v2,...,vn为形式参数,简称形参。类型名、函数名和形参名遵循标识符的命名约定。将标题头拷贝过来,末尾添一个分号得到函数原型,其中的形参v1,v2,....,vn可省略,格式为(左边为抽象的原型描述,右边为具体的举例):

typef(T1v1,T2v2,...,Tnvn);intAdd(int,int);

函数的标题头和函数体构成函数定义,紧接着右圆括号”)”的最外层花括号{}包含的部分为函数体。函数体由若干语句构成,也可以根本没有语句,此时称为空函数。C-C++程序设计教程课件全文共53页,当前为第43页。44

函数定义时标题头的形参可以省略而仅有类型,此时表示函数简单的提供一个接口准备。也可以根本没有入口参数。例如:

voidShow(){printf("输入两个整数\t");}。

expre是可以转换为type类型的表达式。type如果是int,则函数运算的结果返回int型整数。形参是入口,可以是各种类型的变量,也可以是指向这些变量的指针。函数返回的数据为出口,函数可以返回变量,也可以返回指针,指针是特殊的变量。C-C++程序设计教程课件全文共53页,当前为第44页。45

如果return之后跟随表达式语句,表示将表达式的值转送给上层函数,此时函数返回确定类型的数据。如果return语句之后紧贴一个分号或函数体中无return语句,这样的函数的返回类型则写为void,表示函数不返回值而仅执行特定的运算或动作。 函数调用点实际代替形参的变量或表达式称为实际参数,简称实参。实参是调用段可以求值的表达式。函数调用由函数名、圆括号对和逗号依次分隔开的若干实参构成。函数名与圆括号对是必不可少的,在无参调用时没有实参。例如:

Show();C-C++程序设计教程课件全文共53页,当前为第45页。46

函数调用就是用具体的实参代替形参的过程,实参x1,x2,…,xn应与形参列表的形参v1,v2,....,vn在位置、类型和个数上一一匹配。实参是形参的数据来源,是形参的初值。 在函数调用点相当于执行了v1=x1,v2=x2,....,vn=xn的初始化赋值运算。不返回值的函数vf单独调用:vf(x1,x2,....,xn);

例:

vf(i,j,sum);vf(i,j,Add(i,j)); void类型的函数一般仅独立调用,由此构成函数调用语句。C-C++程序设计教程课件全文共53页,当前为第46页。47

返回值的函数调用是表达式,简称函数调用是表达式。返回值的函数调用归属于表达式,可以说C/C++语言是一种构筑于表达式之上的语言。表达式是求值的基本单位,变量和常数是最简单的表达式。变量和常数与运算符的组合可构成复杂的表达式。例如:

l+m,sum=Add(i,j),7+m/2*3是表达式。表达式之后加一个分号形成表达式语句,例如:

sum=Add(i,j);是表达式语句。可多次在赋值运算符=左边出现的表达式是左值表达式,否则是右值表达式。变量是左值,常数是右值。Add(i,j)是右值。C-C++程序设计教程课件全文共53页,当前为第47页。48

返回值的函数调用f(x1,x2,.…,xn)携带"returnexpre;"返回的值。表达式expre能够出现的地方,f(x1,x2,….,xn)几乎可以等价的出现。但C语言返回算术表达式或返回指针表达式的函数调用构成右值。C++增添了返回左值的函数调用,这才是全部等价的映

温馨提示

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

评论

0/150

提交评论