c++函数学习总结
函数的定义:函数的定义形式为数据类型+函数名+带数据类型的形式参数表+函数体
例如:
int max(int x,int y)
{
return x>y? x:y;
}
函数的形式有无参函数、有参函数和空函数三种。
函数的声明:函数在调用前需要先进行声明,说明类型为void的函数是无参函数,无参函数没有参数传递所以没有返回值,int double等说明的为有参函数,空函数没有任何语句不完成什么工作,只是占据一个位置用于扩充函数功能。
void swap(int p1,int p2);
函数调用时的参数传递方式有三种:
按值传递:将实参的值赋给形参,因为被调用函数不对实参进行操作所以形参的变化不对实参造成影响,即使形参的值在函数中发生了变化实参的值也仍为调用前的值。
定义:Voidswap(int a,int b); 引用: swap(a,b)
地址传递:定义时需要将形参说明成指针,在调用时需要指定地址值形式的实参,也就是说调用时在括号中需要输入实参的地址(加&)。形参的任何变化都会影响到实参。
定义:Void swap(int *p1,int *p2); 引用 :swap(&a,&b)
引用传递:引用传递相当于是给实参起了一个别名,对其进行操作就相当于对实参直接进行操作。在函数定义时需要在形参前面加上&,对形参的任何操作都能改变相应的数据,这种传递方式是三种参数传递方式中最为方便的一种。
定义:Void swap(int &a,int &b); 引用:swap(a,b)
函数的返回值:返回语句为return,它的一般形式为 return(表达式),当只有return;时那么这个函数没有返回值,只是把流程转向主函数。
在说明语句中:*变量 表示是指针, &变量 表示是说明引用。在正常语句中: 变量前加&表示取地址,指针前加*表示取内容。
s*=*(p+i) 赋值号左边的*表示是乘右边的*表示为取地址。*(a+i)=a【i】
定义数组a :int a【100】,当直接输a时表示的是地址*(a+i)=a[i]。int *p int &x=y p=&x y=*p
感悟:经过一段时间的学习,我感觉函数最大的优点就是比较灵活,可以把一个问题分解成很多个小部分来处理。可以自己定义一些函数来实现特定的功能,并且可以反复多次调用函数来简化过程,通过函数的使用可以使可以使主函数变得更加简洁,让人更加容易读懂,而且当构建出现错误时可以检查各函数的值更方便找出错误。
: