函数定义中的参数名称可以与C++中函数调用中传递给它的参数名称相同吗?

Can the names of parameters in function definition be same as the name of arguments passed to it in the function call in C++?

假设我们有一个函数如下:

int add(int num1, int num2) { 
    num1 += num2;
    return num1;
}

现在,我通过传递与 add 函数中的参数同名的参数来调用上述函数。

int num1 = 10;
int num2 = 10;

int result = add(num1, num2) 

这样做对吗?代码编译正确但我不确定我做的是否正确?

是的,您在函数调用中传递的变量名称可以与函数定义中的参数名称相同。函数参数的范围在函数块中开始和结束,因此编译器可以将定义在不同范围的两个(或更多)变量分开,即使它们具有相同的名称。

您可以通过传递具有相同名称 (add(num1, num2))、不同名称 (add(x, y)) 或根本没有名称 (add(3, 4)) 的变量来调用您的函数。

请参阅 C++ Scope 参考中的 函数参数范围 部分。