c++函数学习

“函数”可以将实现了某一功能,并需要反复使用的代码包装起来形成一个功能模块(即写成一个“函数”),那么当程序中需要使用该功能时,只需要写一条语句,调用实现该功能的函数即可

函数的定义:

返回值类型 函数名(参数1类型 参数1名称,参数2类型 参数2名称......)

语句组(“函数体”)}

如果函数不需要返回值,则“返回值类型”可以写“void"

函数调用和return语句

调用函数:

函数名(参数1,参数2,...)

对函数的调用,也是一个表达式。函数调用表达式的值,由函数内部的return语句决定。return语句语法如下:

return0返回值;

return语句的功能是结束函数的执行,并将”返回值“作为结果返回。”返回值“是常量,变量或复杂的表达式均可。如果函数返回值类型为”void“,return语句就直接写:

return;

函数的声明

一般来说函数的定义必须出现在函数调用之前,否则调用语句编译出错

函数的调用语句前面有函数的声明即可,不一定要有定义!

返回值类型 函数名(参数1类型 参数1名称, 参数2类型 参数2名称.....)

如:int Max(int a,int b);

double Sqrt(double); //参数名称可以省略。函数名称也可以称为“函数原型”

函数参数的传递

函数的形参是实参的一个拷贝,且形参的改变不会影响到实参(除非形参类型是数组或引用

例:#include<iostream>

using namespace std;

void Swap(int a,int b)

{int tmp;

tmp=a;

a=b;

b=tmp;

cout<<"In Swap: a="<<a<<"b="<<b<<endl;}

int main(){

int a=4,b=5;

Swap(a,b);

cout<<"After swaping:a="<<a<<"b="<<b;

return 0;}

In Swap:a=5 b=4

After swaping:a=4 b=5

一维数组作为函数的参数

一维数组作为形参时的写法:类型名 数组名[]

不用写出数组的元素个数。如:

void printArray(int a[]){}

数组作为函数参数时,是传引用,即形参数组改变了,实参数组也会改变

二维数组作为函数的参数

二维数组作为形参时,必须写明数组有多少列,可以不用写明有多少行

必须写明列数,编译器才能根据下标算出元素的地址。

a[i][j]的地址:

数组首地址+i*N*sizeof(a[0][0])+j*sizeof(a[0][0])(N是数组列数)

形参数组的首地址是实参数组的首地址

递归

一个函数,自己可以调用自己,就是递归

如:int Factorial(int n)

{if (n<2)

return 1;//终止条件

else

return n*Factorial(n-1);

} //cout<<Factorial(5);==>120

递归函数需要有终止条件,否则就会无穷递归导致程序无法终止甚至崩溃

求斐波那契数列第n项

int Fib(int n)

{

if (n==1||n==2)

return 1;

else

return Fib(n-1)+Fib(n-2);}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值