C++语言程序设计 C++语言程序设计 第五章 函数 第十一组 C++语言程序设计.

Slides:



Advertisements
Similar presentations
1 第二讲 C++ 编程基础. 2 主要内容 C++ 语言概述 C++ 编程基础 数据的简单输入输出 C++ 的发展 C++ 源程序结构与书写规范 C++ 编译器和集成开发环境.
Advertisements

C++语言程序设计教程 第5章 构造数据类型 第6章 C++程序的结构.
移动应用软件开发技术 第二讲:C++编程基础
合 同 法 主讲人: 教材:《合同法学》(崔建远) 2017/3/10.
第 2 章 初探 C++.
课程概况 加入班级QQ群,便于及时沟通和资料共享。 课程教学的组成:
第4章 数组 数组是由一定数目的同类元素顺序排列而成的结构类型数据 一个数组在内存占有一片连续的存储区域 数组名是存储空间的首地址
第八章 类和对象.
C++程序设计 王希 图书馆三楼办公室.
高级语言程序设计 主讲人:陈玉华.
資料大樓 --談指標與陣列 綠園.
C++语言程序设计 第四章 类与对象 成都信息工程学院计算机系.
函數(一) 自訂函數、遞迴函數 綠園.
第4章 函数与预处理 4.1 概述 4.2 定义函数的一般形式 4.3 函数参数和函数的值 4.4 函数的调用 *4.5 内置函数
教材 《C++程序设计》.谭浩强. 清华大学出版社 王雪晶
C++语言程序设计 C++语言程序设计 第六章 指针和引用 第十一组 C++语言程序设计.
第一章 程序的基本结构. 第一章 程序的基本结构 教材及授课结构 本章目标 基本内容 扩展阅读 上机指导 应用举例 习题.
C++语言程序设计 C++语言程序设计 第四章 数组及自定义数据类型 C++语言程序设计.
Object-Oriented Programming in C++ 第一章 C++的初步知识
第7章 编译预处理 本章要求: 本章重点: 本章难点: 掌握用#define定义无参数宏和带有参数宏定义和调用方法;
第一章 C++编程简介 丘志杰 电子科技大学 计算机学院 软件学院.
第3讲 C++程序控制结构 3.1 顺序结构 3.2 分支结构 3.3 循环结构 3.4 转向控制 3.5 综合案例分析.
C++程序设计 string(字符串类) vector(容器类).
C++语言程序设计 第二章 C++简单程序设计.
C++大学基础教程 第4章 函数 北京科技大学 信息基础科学系.
程序的三种基本结构 if条件分支语句 switch多路开关语句 循环语句 循环嵌套 break,continue和goto语句
谭浩强 编著 中国高等院校计算机基础教育课程体系规划教材 C++程序设计.
C++语言程序设计 C++语言程序设计 第六章 指针和引用 第十一组 C++语言程序设计.
切換Dev c++顯示語言 工具->環境選項(V)->介面->language (Chinese TW)
C++ 程式設計 基礎篇 張啟中 Chang Chi-Chung.
六、函数 教学目标: 函数的概念、定义、调用和返回 带自定义函数的程序设计 递推算法 递归思想及算法实现 函数的参数传递方式 C语言程序设计.
C++大学基础教程 第3章 C++控制语句 北京科技大学 信息基础科学系.
C++面向对象程序设计 谭浩强编著 授课教师:姬广永 QQ: 学习网站:
C++大学基础教程 第11章 多态性 北京科技大学 信息基础科学系 2019/4/8 北京科技大学.
第二章 基本数据类型及运算 C数据类型概述 基本数据类型 运算符和表达式 混合运算与类型转换 数据的输入输出 顺序程序设计举例.
Chapter 2 & Chapter 3.
C++语言程序设计 C++语言程序设计 第七章 类与对象 第十一组 C++语言程序设计.
C++语言程序设计 C++语言程序设计 第七章 类与对象 第十一组 C++语言程序设计.
C++语言程序设计 C++语言程序设计 第九章 类的特殊成员 第十一组 C++语言程序设计.
第一章 程序设计和C语言 主讲人:高晓娟 计算机学院.
C++语言程序设计 C++语言程序设计 第三章 控制语句 第十一组 C++语言程序设计.
物件導向程式設計 CH2.
指標
Chap 5 函数 5.1 计算圆柱体积 5.2 使用函数编写程序 5.3 变量与函数.
7.1 C程序的结构 7.2 作用域和作用域规则 7.3 存储属性和生存期 7.4 变量的初始化
第11章 從C到C++語言 11-1 C++語言的基礎 11-2 C++語言的資料型態與運算子 11-3 C++語言的輸出與輸入
C程序设计.
C语言程序设计 李祥 QQ:
C++语言程序设计教程 第2章 数据类型与表达式 第2章 数据类型与表达式 制作人:杨进才 沈显君.
C++语言程序设计 C++语言程序设计 第八章 继承 C++语言程序设计.
C++程式設計入門 變數與運算子 作者:黃建庭.
第二章 类型、对象、运算符和表达式.
第二章 基本数据类型 ——数据的表示.
C/C++基礎程式設計班 C++: 物件的使用、參考、重載函式 講師:林業峻 CSIE, NTU 3/28, 2015.
本节内容 函数嵌套调用的内存布局 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
第四章 函数 丘志杰 电子科技大学 计算机学院 软件学院.
C++语言程序设计 C++语言程序设计 第八章 继承 C++语言程序设计.
C++语言程序设计 C++语言程序设计 第二章 基本数据类型与表达式 第十一组 C++语言程序设计.
C++语言程序设计 第十章 C++标准模板库 成都信息工程学院计算机系.
C++语言程序设计 C++语言程序设计 第十章 多态 第十一组 C++语言程序设计.
本章主題 C++的程式結構 資料型態與宣告 算術運算 簡易的輸入輸出指令 程式編譯(Compile)的過程與原理.
《数据结构与算法设计》第一部分 面向对象的C++程序设计基础.
第三章 高级函数特性.
C++面向对象程序设计 谭浩强编著 授课教师:姬广永 学习网站:
C++语言程序设计 C++语言程序设计 第十一章 异常处理 C++语言程序设计.
第9章 C++程序设计初步 9.1 C++的特点 9.2 最简单的C++程序 9.3 C++的输入输出 9.4 函数的重载
變數與資料型態  綠園.
資料!你家住哪裏? --談指標 綠園.
C++语言程序设计 C++语言程序设计 第二章 基本数据类型与表达式 第十一组 C++语言程序设计.
Presentation transcript:

C++语言程序设计 C++语言程序设计 第五章 函数 第十一组 C++语言程序设计

“ 目录 C++语言程序设计 基本知识 编程技能 刨根问底 函数概述 函数定义 递归函数 变量的存储类型和生存期 函数调用 内联函数 全局变量与局部变量 结构化程序设计 递归函数 内联函数 重载函数 带默认参数值的函数 变量的存储类型和生存期 函数调用的执行机制 参数的传递机制 C++语言程序设计

基本知识 a C++语言程序设计

5.3 函数的调用 函数调用的三种形式 C++语言程序设计 函数语句 函数表达式 函数参数 函数语句形式: 函数名(实参数表); 5.3 函数的调用 函数调用的三种形式 函数语句 函数语句形式: 函数名(实参数表); DispColor(color); 函数表达式 函数调用出现在表达式中,形式:函数名(实际参数表) x=max(a,b); y=sqrt(x); 此时函数要使用return语句向主调函数返回一个确定的值,参与它所在的表达式的运算。 float max(float a,float b) { return a>=b?a:b; } 函数参数 函数参数调用方式是将函数调用写在另一次函数调用的实际参数位置。 例如: m=max(a, b, max(c, d, e)); C++语言程序设计

5.3 函数的调用 实际参数表可简称为实参表,是按与被调函数形式参数表一一对应的格式组织的参数表,即参数的类型、个数和排列顺序必须与被调函数声明的形式参数表严格一致。 实际参数表的各实际参数以逗号间隔,实际参数可以是常量、变量或表达式,变量和表达式必须具有确定值。 如果被调函数无形式参数,则实参表也是空的。 例: 计算y=kx+b的函数 float func(int k,int b,float x) { return k*x+b; } void main() { int k,b; float x,y; cin>>k>>b>>x; y=func(k,b,x); C++语言程序设计

5.4 全局变量与局部变量 根据变量定义的位置 作用域 局部变量(在函数内部定义的变量、函数的形参) 5.4 全局变量与局部变量 根据变量定义的位置 局部变量(在函数内部定义的变量、函数的形参) 全局变量(在函数外部定义的变量为全局变量) 作用域 由于变量定义的位置不同,所以变量起作用的范围也不同。把程序中一个标识符起作用的范围称为其作用域。 C++语言程序设计

局部变量包括在函数体内定义的变量和函数的形式参数,它们的作用域就在函数体内,只能在本函数内使用,不能被其它函数直接访问。 5.4 全局变量与局部变量 局部变量包括在函数体内定义的变量和函数的形式参数,它们的作用域就在函数体内,只能在本函数内使用,不能被其它函数直接访问。 #include <iostream> using namespace std; int fun1(int x, int y); int fun2(int x, int y); void main() { int a,b; cout<<"input a,b:" cin>>a>>b; cout<<fun1(a,b) <<endl; cout <<fun2(a,b) <<endl; } int fun1(int x, int y) { int n; n=x*x+y*y; return n; } int fun2(int x, int y) { int m; m=x*x-y*y; return m; C++语言程序设计

局部变量能够随其所在的函数被调用而被分配内存空间,也随其所在的函数调用结束而消失(释放内存空间),所以使用这种局部变量能够提高内存利用率。 5.4 全局变量与局部变量 局部变量能够随其所在的函数被调用而被分配内存空间,也随其所在的函数调用结束而消失(释放内存空间),所以使用这种局部变量能够提高内存利用率。 由于局部变量只能被其所在的函数访问,所以这种变量的数据安全性好(不能被其它函数直接读写)。局部变量在我们实际编程中使用频率最高。 C++语言程序设计

一个C++的源文件(.cpp)可以由多个函数组成,可以在函数外部定义变量,即全局变量。 5.4 全局变量与局部变量 一个C++的源文件(.cpp)可以由多个函数组成,可以在函数外部定义变量,即全局变量。 全局变量能够被位于其定义位置之后的所有函数(属于本源文件的)共用。即全局变量起作用的范围是从它定义的位置开始至源文件结束。 全局变量的作用域是整个源文件。 全局变量在程序执行的整个过程中,始终位于全局数据区内固定的内存单元;如果程序没有初始化全局变量,系统会将其初始化为0。 C++语言程序设计

5.4 全局变量与局部变量 C++语言程序设计 //全局变量使用示例 #include<iostream> 5.4 全局变量与局部变量 //全局变量使用示例 #include<iostream> using namespace std; int maximum; int minimum; void fun(int x,int y int z) { int t; t=x>y?x:y; maximum=t>z?t:z; t=x<y?x:y; minimum=t<z?t:z; } void main() { int a,b,c; cout<<"input data a,b:"; cin>>a>>b>>c; fun(a,b,c); cout<<"maximum="<<maximum<<endl; cout<<"minimum="<<minimum<<endl; } C++语言程序设计

程序中标识符的作用域也就是标识符起作用的范围,标识符只能在其起作用的范围内被使用。 从标识符起作用的范围上划分,作用域主要分为 5.4 全局变量与局部变量 程序中标识符的作用域也就是标识符起作用的范围,标识符只能在其起作用的范围内被使用。 从标识符起作用的范围上划分,作用域主要分为 全局作用域 局部作用域 从标识符在程序中所处的位置,又可区分作用域为 块作用域 函数作用域 类作用域 文件作用域 C++语言程序设计

5.4 全局变量与局部变量 块作用域 块作用域是指标识符起作用的范围为块内范围,在块内定义的标识符具有块作用域。 5.4 全局变量与局部变量 块作用域 块作用域是指标识符起作用的范围为块内范围,在块内定义的标识符具有块作用域。 这个块,可以是复合语句的块,也可以是函数定义的函数体块。 块内定义的局部变量的作用域是从变量定义起至本块结束。 C++语言程序设计

C++语言程序设计 t的作用域 a和b的作用域 c的作用域 #include<iostream> using namespace std; void main() { int a, b; cout<<"input a,b:" cin>>a>>b; if (a<b) { int t; t=a; a=b; b=t; } int c=a*a-b*b; cout<<a<<"*"<<a" - "<<b<<"*"<<b<<"="<<c<<endl; t的作用域 a和b的作用域 c的作用域 C++语言程序设计

C++语言程序设计 #include ”iostream” using namespace std; void fun(); void main() { int num=10; cout<<“the first : num=”<<num<<endl; fun(); { int num=30; cout<<“the third: num=”<<num<<endl; } cout<<“the forth: num=”<<num<<endl; void fun() { int num=20; cout<<“the second: num=”<<num<<endl; 作用域范围在main函数中 块作用域范围 作用域范围在fun函数中 C++语言程序设计

5.4 全局变量与局部变量 函数作用域 文件作用域 函数作用域是指标识符的作用域为函数,或者是从标识符定义开始到函数结束。 5.4 全局变量与局部变量 函数作用域 函数作用域是指标识符的作用域为函数,或者是从标识符定义开始到函数结束。 文件作用域 文件作用域也即全局作用域,指标识符的作用域为文件范围。 在源文件所有函数之外声明或定义的标识符具有文件作用域,全局变量和函数名(不包括在其它函数内部声明原型的函数名)具有全局作用域,起作用的范围是从声明或定义点开始,直至其所在文件结束。 C++语言程序设计

标识符在其作用域内,能被访问到的位置称其为可见的。不能被访问到的位置称其为不可见的。 5.4 全局变量与局部变量 标识符的可见性 是研究标识符在其作用域内能否被访问到的问题。 标识符在其作用域内,能被访问到的位置称其为可见的。不能被访问到的位置称其为不可见的。 内层标识符与外层标识符同名时,内层标识符可见,外层标识符不可见。对于变量,也即内层变量屏蔽外层同名变量。 作用域范围小的标识符称为内层标识符;作用域范围大的标识符称为外层标识符 在同一作用域中,不能声明同名的标识符。 C++语言程序设计

C++语言程序设计 #include<iostream> using namespace std; double pi=3.1415926;  double BallVolume(double radius) { double volume=pi*radius*radius*radius*4/3; //全局变量pi return volume; }  double CircleArea(double radius) { double area=pi*radius*radius; //全局变量pi return area; }  float CircleArea( float radius) { float pi=3.14f; float area=pi*radius*radius; //局部变量pi  void main() { float r; cout<<"input radius: "; cin>>r; double dr=(double) r; cout<<"Ball volume: "<<BallVolume(dr)<<endl; cout<<"Circle area: "<<CircleArea(dr)<<"(double)"<<endl; cout<<"Circle area: "<<CircleArea(r)<<"(float)"<<endl; } C++语言程序设计

函数的实现代码如果函数内的局部变量与全局变量同名,且在函数内一定要使用这个同名全局变量,可以用作用域符号(::)指定要访问的全局变量。 #include<iostream> using namespace std; double pi=3.1415926;  void BallVolume(double radius) { double volume=pi*radius*radius*radius*4/3; //全局变量pi cout<<"Ball volume: "<<volume<<endl; } void CircleArea( float radius) { float pi=3.14f; float area=pi*radius*radius; //局部变量pi cout<<"Circle area: "<<area<<"(float)"<<endl; area=::pi*radius*radius; //全局变量pi cout<<"Circle area: "<<area<<"(double)"<<endl;  void main() { float r; cout<<"input radius: "; cin>>r; BallVolume(r); CircleArea(r); } 函数的实现代码如果函数内的局部变量与全局变量同名,且在函数内一定要使用这个同名全局变量,可以用作用域符号(::)指定要访问的全局变量。 C++语言程序设计