C++形式参数和实际参数
主调函数和被调函数之间是有数据传递关系的,在调用函数时,函数是带参数的,参数分为形式参数和实际参数
- 形式参数是在定义函数时,函数名后面括号中的变量名。
- 实际参数则是在主调函数中调用一个函数时,函数名后面括号中的参数。
形式参数和实际参数有什么区别呢?
- 实参可以是变量、常量或表达式。
- 在定义函数时,需要在函数首部指定形参的类型。
- 实参与形参的类型应相同或赋值兼容。
- 在调用函数时,编译系统会临时给形参分配存储单元。
- 实参变量对形参变量的数据传递时值传递,也就是单向传递,只能由实参传给形参,无法逆序传输。
- 在定义函数指定的形参,如果函数未调用,形参时不占内存中的存储单元,只有在函数调用发生时,形参才被分配存储单元,调用结束后,存储单元也会被释放。
C++函数的返回值
在C++中,函数的返回值是通过函数中的return语句获得,return语句将被调函数中的一个确定值带回主调函数中。
- return语句后面的括号可以省略。
- return语句后面的值也可以是表达式。
在定义函数时就指定函数值的类型,因为函数有返回值,这个值就应该属于某一个确定的类型。
如果函数值的类型和return语句中的表达式的值不一致,那么以函数类型为准,对数值型数据,可以自动进行类型转换。
经典案例:C++实现比较两个数大小,要求使用函数。
#include<iostream>//头文件
using namespace std;//命名空间
extern int CompareSize(int num_1,int num_2);//函数声明
int main() //主函数
{
int num_1,num_2,max;//定义变量
cout<<"请输入两个数:";
cin>>num_1>>num_2;
max=CompareSize(num_1,num_2);//调用自己写的比较大小的函数
cout<<"较大的数是:"<<max<<endl;
return 0;//主函数返回值为0
}
int CompareSize(int num_1,int num_2)//函数定义
{
int temp;//定义中间变量
if(num_1>num_2)//把两个数中的较大赋给temp
{ temp=num_1;
}
else
{ temp=num_2;
}
return temp;//把较大的数返回到调用函数处
}
执行本程序之后,会输出:
请输入两个数:5 8
大数时:8
--------------------------------
Process exited after 4.155 seconds with return value 0
请按任意键继续. . .
文章来源: zhuanlan.zhihu.com,作者:,版权归原作者所有,如需转载,请联系作者。
原文链接:zhuanlan.zhihu.com/p/326519932