函数的定义和调用
#include<iostream>
using namespace std;
//定义加法函数
//函数定义时,num1和num2并无真实的值,只是形式参数
int add(int num1,int num2)
{
int sum=num1+num2;
return sum;
}
int main(){
int a=10;
int b=20;
//a和b为实际参数,调用函数时,实参传给形参
int c=add(a,b);
cout<<"c="<<c<<endl;
system("pause");
return 0;
}
常见的函数形式
#include<iostream>
using namespace std;
//函数常见样式
//1.无参无返
void test01()
{
cout<<"this is test01"<<endl;
}
//2.有参无返:交换函数
//3. 无参有返
int test03()
{
cout<<"this is test03"<<endl;
return 1000;
}
//4.有参有返:求和函数
int main(){
test01();//无参无返的调用
int c=test03();
cout<<"c="<<c<<endl;
return 0;
}
值传递
#include<iostream>
using namespace std;
//值传递:形参发生改变,不会改变实参
//定义函数,实现两个数字进行交换
//如果函数不需要返回值,声明的时候写void
void swap(int num1,int num2)
{
cout<<"交换前"<<endl;
cout<<"num1="<<num1<<endl;
cout<<"num2="<<num2<<endl;
int temp=num1;
num1=num2;
num2=temp;
cout<<"交换后"<<endl;
cout<<"num1="<<num1<<endl;
cout<<"num2="<<num2<<endl;
//不需要返回值可以不写return
}
int main(){
int a=10;
int b=20;
cout<<"a="<<a<<endl;
cout<<"b="<<b<<endl;
swap(a,b);
cout<<"a="<<a<<endl;
cout<<"b="<<b<<endl;//没有改变
return 0;
}
函数的声明
#include<iostream>
using namespace std;
//函数的声明
//比较函数,返回较大的值
//可以提前告诉编译器函数的存在,可以利用函数的声明
int max(int a,int b);//声明可以写多次,定义只能写一次
int main(){
int a=10;
int b=20;
cout<<"较大的数为"<<max(a,b)<<endl;
return 0;
}
int max(int a,int b)
{
return a>b?a:b;
}
函数的分文件编写
//1.先创建一个.h后缀名的头文件
//2.再创建一个.cpp为后缀名的源文件
//3.在头文件中写函数的声明
//4.在源文件中写函数的定义
//在头文件中加上框架
//在源文件中写上自定义头文件 #include"max.h"
函数提高
1.函数可以有默认参数(某个位置有了默认参数,这个位置往后都要有默认值,调用时不用填补)
2.函数声明有默认参数,函数实现就不能有
3.占位参数 :只写一个数据类型(调用时要填补)
4.函数重载:函数名可以相同——返回值不能作为重载条件