1,函数功能的调用
功能:使用定义好的函数
语法:函数名(参数)
示例:
#include<bits/stdc++.h>
using namespace std;
//定义加法函数
int add(int num1,int num2){
int sum=num1+num2;
return sum;
}
int main(){
//main函数中调用add函数
int a=10;
int b=20;
//函数调用语法:函数名称(参数)
int c=add(a,b);
cout<<"c="<<c<<endl;
}
需要注意的是,在函数定义时,也就是int add(int num1,int num2)时,num1和num2被称为函数的形式参数,简称形参。在main函数中调用add函数时传入的a,b被称为实际参数,简称实参。在函数调用的过程中实参的值会被传递给形式参数。
2,值传递
- 所谓值传递,就是函数调用时实参将数值传入给形参
- 值传递时,如果形参发生,并不会影响实参
#include<bits/stdc++.h>
using namespace std;
void swap(int num1,int num2){
cout<<"before swap: "<<endl;
cout<<"num1= "<<num1<<endl;
cout<<"num2= "<<num2<<endl;
int temp=num1;
num1=num2;
num2=temp;
cout<<"after swap: "<<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;
}
可以看出,虽然以a,b为形参执行了一遍互换的操作,但是其本身的值(实参)还是没有变
原理:涉及到计算机组成原理,内存管理与分配问题