以下为这两周及寒假学习函数过程中的收获:
C++函数分两种:有返回值的和没有返回值的。
一:使用有返回值的函数
有返回值的函数将生成一个值,而这个值可赋给变量或在其他表达式中使用。例如,标准C++库包含一个名为sqrt()的函数,它返回平方根。假设要计算4的平方根,则可以在程序中使用这样的语句:
x=sqrt(4);//return x;
函数具体定义的语法形式:
数据类型 函数名(形式参数表)
{
函数体 //执行语句
}
例:定义一个求平方的函数
int pf (int x) //int 为数据类型,pf为函数的名字,x为形式参数;
{
int t;
t=x*x; //函数内容;
return t; //返回x的平方;} //在实际运用函数时,需要定义一个实际参数(简称实参),形式参数的数据类型需要与实际参数保持一致,在调用函数时会 将实际参数的值赋给形参,计算函数的值。这是最基本的内容,就不具体用代码展示了。
此为有返回值的函数。
二:使用无返回值的函数
若数据类型为void,即为无返回值型函数。
三:空函数
这种函数目前我还没有用到,据书上说:
空函数不完成什么工作,只占据一个位置。在大型程序设计中,空函数用于扩充函数功能,现在我还不太了解什么是扩充函数功能,以后再来发博客探讨这个问题。
函数的三种传值方式:
一:按值传递(缺点是只能返回一个函数值)
二:地址传递
-
如果在函数定义时将形参说明成指针,调用函数时就需要指定地址值形式的实参。这时的参数传递方式就是按地址传递方式。与按值传递的不同是对形参的改变影响实参。
三:引用传递
引用的概念:
类型名 & 引用名 = 某变量名;
某个变量的引用,和这个变量是一回事,相当于该变量的一个别名
例:
void swap( int & a, int & b)
{
inttmp;
tmp= a; a = b; b = tmp;
}
int n1, n2;
swap(n1,n2) ; // n1,n2的值被交换
关于函数还要注意的几点:
1。当代码中同时存在标准函数和自定义函数且函数名相同时,优先用自定义函数。
2。引用传递时最安全便捷的方式。
3。主函数和函数定义的同样的a,b意义并不一样,不是同样的。
学函数的同时还学习了指针,打算再重写一个有关指针的博客,就不在这里详述了。
心得:使用函数的感受就是,简单粗暴,省时省力,非常好用。