知识点;
一、函数的定义
1、函数定义的语法形式
数据类型 函数名(形式参数表)
{函数体 //执行语句
}
(1)、函数的数据类型是函数的返回值
(2)、形式参数(简称形参)表可以是空的(无参函数),也可以有多个形参,形参间用逗号隔开,不管有无参数,函数名后的圆括号都必须有。形参必须有类型说明,可以是变量名、数组名或指针名,它的作用是实现主调函数于被调函数之间的关系。
(3)、函数不允许嵌套定义。在一个函数内定义另一个函数是非法的,但是允许嵌套使用。
2、函数定义的例子
定义一个函数,返回两个数中的最大数。
int max(int x,int y)
{ return x>y x:y;
}
3、函数的形式
函数的形式从结构上说可以分为三种:无参函数、形参函数和空函数。
(1)、无参函数--没有参数传递的函数,一般不需要带回函数值,函数类型一般说明为void。
(2)、有参函数--有参数传递的函数,一般需要带回函数值。例如int max(int x,int y)函数。
(3)、空函数--只有一对花括号,花括号内没有任何语句的函数。空函数不完成什么工作,只占据一个位置。在大型程序设计中,空函数用于扩充函数的功能。
二、函数的声明和调用
1、函数的声明
调用函数之前先要声明函数原型。
类型说明符 被调函数名(含类型说明的形参表)
2、函数的调用
声明了函数原型之后,便可以按如下形式调用函数:
函数名(实参列表)
实参列表中应给出与函数原型形参个数相同、类型相符的实参。在主调函数中的参数称为实参,实参一般应具有确定的值。函数调用可以作为一条语句,这时函数可以没有返回值。
3、函数的返回
返回语句return
其功能是把程序流程从被调函数转向主调函数并把表达式的值带回主调函数,实现函数的返回。当一个函数没有返回值时,函数中可以没有return语句,直接运用函数体的右花括号“}”,作为没有返回值的函数的返回。
三 、函数的传值调用
函数传值调用的特点是将调用函数的实参表中的实参值依次对应的传递给被调用函数的形参表中的形参。要求函数的实参与形参个数相同,类型相同。
函数的调用方式分传值调用和传址调用
1、传值调用即将实参的数据值传递给形参。参数传递的方向只能从实参传递给形参,简称单向值传递。
2、传址调用即将实参变量的地址值传递给形参,这时形参是指针,即让形参的指针指向实参地址,这就提供了一种可以改变实参变量的值得方法。
四、全程变量、局部变量即它们的作用域
在函数外部定义的变量称为外部变量或全局变量,在函数内部定义的变量称为内部变量或局部变量。
1、全局变量--其作用域是变量定义的位置开始到文件结束,可以在全局变量定义后面的任何函数中使用。
全局变量在定义时若没有赋初值,其默认值为0。
2、局部变量--其作用域是在定义该变量的函数内部。函数的形参也是局部变量。一个局域变量和一个全局变量可以重名,在相同的作用域内局部变量有效时全局变量无效。局部变量的数组不能开的太大,全局变量随便。
题型;
- #include <iostream>
- using namespace std;
- template<typename T> void Swap(T *a, T *b){
- T temp = *a;
- *a = *b;
- *b = temp;
- }
- int main(){
- //交换 int 变量的值
- int n1 = 100, n2 = 200;
- Swap(&n1, &n2);
- cout<<n1<<", "<<n2<<endl;
- //交换 float 变量的值
- float f1 = 12.5, f2 = 56.93;
- Swap(&f1, &f2);
- cout<<f1<<", "<<f2<<endl;
- //交换 char 变量的值
- char c1 = 'A', c2 = 'B';
- Swap(&c1, &c2);
- cout<<c1<<", "<<c2<<endl;
- //交换 bool 变量的值
- bool b1 = false, b2 = true;
- Swap(&b1, &b2);
- cout<<b1<<", "<<b2<<endl;
- return 0;
- }
template<typename T>
被称为模板头。
感悟;
对于函数的学习,我觉得的主要归结于两方面,一是对题目本身的理解,只有能理解了题目所要表达的意思才能够真正的合理运用函数,其中也要不断地积累数学知识,因为数学是做题的根本,数学知识与函数有着密不可分的联系,只有数学学好了才有资格说函数运用的好,这也要求我们不断地积累数学知识,方便以后函数的正常使用,二就是对函数本身的理解,函数结构运用得当了才可能使函数正常运行,这是个关键也是根本。只有不断地结合数学方面的知识,不断地挖掘函数运用的技巧,函数的使用才会水到渠成,数学的学习至关重要,以后也要加强。