一、认识函数
“函数”可以将实现了某一功能,并需要反复使用的代码包装起来形成一个功能模块(即写成一个“函数”),那么当程序中需要使用该项功能时,只需写一条语句,调用实现该功能的“函数”即可。
void out_put(void) {
cout << "Hello CSDN!" << endl;
return;
}
一些程序制作时,不同程序员写不同的函数,再把它拼起来成为一个完整的程序
二、函数的定义
返回类型 函数名(形参1, 形参2 …) {
函数体;
}
三、函数的调用
- 对函数的调用,也是一个表达式。
- 函数调用表达式的值,由函数内部的return语句决定。
- 调用格式为:函数名(实参1,实参2,实参3,…)。
定义函数:
void out_Put() {
for (int i = 0; i < 6; i++) cout << "*";
cout << endl;
return;
}
函数调用:
out_Put();
完整代码:
#include <iostream>
using namespace std;
void out_Put() {
for (int i = 0; i < 6; i++) cout << "*";
cout << endl;
}
int main() {
out_Put();
return 0;
}
四、函数的返回值
返回值类型 函数名(参数类型 参数名);
注:也可以没有参数或有两个(以上)的参数,两个以上的参数用逗号分隔。
返回值的类型有:void,int,double,float,char等。
注:如果是void表示该函数无返回值。其他则表示有返回值。参数类型即是数据类型,参数名既是变量名。
函数结束的位置必须用return语句返回正确的值。
return语句的格式为:
return 表达式(或常量值);
定义函数:
int out_put(int a, int b) {
return a + b;
}
函数调用:
out_put(5, 6);
完整代码:
#include <iostream>
using namespace std;
int out_put(int a, int b) {
return a + b;
}
int main() {
cout << out_put(5, 6) << endl;
return 0;
}
通过上面的代码,我们知道了函数传递参数的方法,只需要在括号里写入值即可,多个用逗号隔开。变量相同,如果是上面代码,无论在函数内做任何修改,都不会修改变量在main函数中的值。
五、传引用参数
通过四的讲解,传递变量只会传递值,不会修改变量在main函数的值,如果需要修改,代码如下:
#include <iostream>
using namespace std;
void change(int &a, int &b) {
swap(a, b);
return;
}
int main() {
int a, b;
cin >> a >> b;
change(a, b);
cout << a << " " << b << endl;
return 0;
}
如果我们输入3 5,就会输出5 3。
上面的代码和之前的代码比,在定义函数中参数的部分变量名前多了&号,这个符号我们称之为取地址,意思就是找到参数×和y在计算机中的存储位置,交换他们存储的位置。
所以传引用参数就是在调用函数时将实参变量的地址取出来,此时形参是实参的别名,改变了函数形参的值就是改变外部实参的值。
六、将数组作为函数参数
数组作为函数参数时,不需要写出数组的元素个数,并且数组作为函数参数时,是传引用的。即作为函数参数的数组改变了,在main函数的那个数组也会改变。
数组作为函数参数时写法如下:
类型名 数组名[];
不需要写出数组的元素个数。
例如:
void function(int a[]);