这是什么意思"声明会影响参数"?

时间:2015-08-31 12:32:46

标签: c++ function integer

我正在尝试创建一个函数,它返回我将传递给它的整数的两倍。我的代码收到以下错误消息:

  

宣布' int x'阴影参数int x; "

这是我的代码:

#include <iostream>
int doublenumber();
using namespace std;
int doublenumber(int x)// <-- this is the function which returns double the value .
{
    int x;
    return 2 * x;
    cout << endl;
}
int main()
{
    int a;
    cout << "Enter the number that you want to double it : " << endl;
    cin >> a;
    doublenumber(a);

    return 0;
}

3 个答案:

答案 0 :(得分:19)

您有x作为参数,然后尝试将其声明为局部变量,这就是关于“阴影”的投诉所引用的内容。

答案 1 :(得分:2)

我之所以这样做是因为您的建议非常有用,这是最终的结果:

#include <iostream>
using namespace std;

int doublenumber(int x)
{
    return 2*x;
}

int main()
{
    int a;
    cout << "Enter the number that you want to double it : " << endl;
    cin>>a;
    int n= doublenumber(a);
    cout << "the double value is : " << n << endl;
    return 0;
}

答案 2 :(得分:1)

#include <iostream>
using namespace std;
int doublenumber(int x)
{
return 2*x;
}
int main()
{
int a;
cout << "Enter the number that you want to double it : " << endl;
cin>>a;
int d = doublenumber(a);

cout << "Double : " << d << endl;

return 0;
}

您的代码存在一些问题。您的声明和函数的定义不匹配。因此,删除声明是没有必要的。

你在函数内部声明了局部x变量,这将影响你的函数参数。