C++函数学习总结

<>  函数:

定义:

一些程序段在程序编写过程中反复出现,这些程序段可以作为相对独立的整体。可以用一个标识符给它起一个名字,程序中出现该程序段的地方,只需简单写上其标识符即可。称之为子程序。

 

子程序使用好处:1/缩短程序2/节省内存空间3/减少程序编译时间

而且这样编译的程序结构清晰,逻辑关系明确,编写/阅读/调试/修改都有极大的好处。

 

函数定义的例子:

   int xn1(int x,int y)   //数据类型逐一说明

{

   return x>y?x:y;  //返回一个值

}

使用时将两个值分别赋值给xy(实参将值传递给形参),在该函数体中进行运算,结束后返回一个值。

 

   void xn2(int x,int y)   //数据类型为void,无返回值

{

  

}   

使用方法:

1/在主函数之前写好。

int xn(int x,int y)

{

   //省略

}

2/在主函数之前声明,在主函数后写好该函数。(典型结构)

int xn(int x,int y);  //注意加分号

int main()

{

   //省略

}

int xn(int x,int y)

{

   //省略

}

 

>>>>>>C++函数调用时的三种参数传递方式<<<<<<

1/按值传递:实参赋值给形参,形参进行运算并不影响实参。  //int xn(int x,int y)

2/地址传递:函数定义时将形参说明成指针,参数传递是按地址传递。形参与实参指向同一个地址,函数调用过程中任何改变会影响到实参。 //int xn(int *x,int *y)

3/引用传递:不再是实参拷贝副本给实参,而是让形参直接指向实参。

既可以使得对形参的任何操作都能改变相应的数据,又使得函数调用显得方便自然。  //int xn(int &x,int&y)

 

重要函数之递归函数:

定义:

函数直接调用其自身,称为直接递归;函数间接调用其自身,称为间接递归。

例:用递归算法求x^n;

x^n分解为x*x^(n-1);

同理x^(n-1)=x*x^(n-2);

……

边界:X^0=1;

int xn(int a)

{

   if (a==0) return 0;   //递归边界

   else return x*xn(n-1);  //递归式

}

递归式与递归边界是用好递归函数的关键所在,因此应用递归函数解题时要找出数据之间变化的规律。

 

 

<>  函数应用解题策略:

模板:

#include <bits/stdc++.h>

using namespace std;

int xn(); //函数声明

int main()

{

    //省略

}

int xn()

{

    //省略

}  //函数定义

定义函数时找出题中的数学关系即可。

<>  总结技巧:

Ⅰ:全局变量:定义在函数外部,可以在文件中位于全局变量定义后面的任何函数中使用。

对应局部变量:定义在函数内部,其存储空间是临时分配的,函数执行完毕其值不再保留。

局部变量与全局变量可以重名。

 

#include <iostream>

using namespace std;

int a;  //a即为全局变量;

int main()

{

   int x;  //x即为局部变量;

}

Ⅱ:常用的函数类型有int(返回整数值) , bool(返回10true or false ,void (无返回值),double(返回双精度数值) , float(返回单精度数值)。

Ⅲ:注意:一个函数仅能返回一个结果或者不返回。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值