arg(argument)、param(Parameter)……同样可以翻译成参数,粗略情况下二者可以混用。
但如果要区分👇
argument
形参。函数/模板定义时写的“占位符”
parameter
实参。函数/模板调用时传入的“实际值”
D老师将二者类比为:做蛋糕的模具parameter,和实际倒入的面糊argument。
代码示例
1. 函数参数
// name、times为parameters(形参)
void greet(string name,int times){
for(int i=0;i<times;i++){
cout<<"Hello,"<<name<<"!"<<endl;
}
}
//KYC、6为arguments(实参)
int main(){
greet("KYC",6)
}
2. 模板参数
// T为parameters(形参)
template<class T>
class Box{
T content;
};
// int、string为arguments(实参)
int main(){
Box<int> intBox;
Box<string> strBox;
return 0;
}
总结表格
| 特性 | Parameter (形参) | Argument (实参) |
|---|---|---|
| 中文名 | 形式参数 | 实际参数 |
| 定义时 | ✓ 函数/模板定义中 | ✗ |
| 调用时 | ✗ | ✓ 函数/模板调用中 |
| 本质 | 占位符、变量声明 |
实际的值、表达式 |
| 类比 | 空白表格栏位 | 实际填写的内容 |
