函数定义中的参数名称是否可以与 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++范围参考中的函数参数范围部分。

最新更新