C ++ [错误]声明'char'遮盖了参数。这是什么意思?

时间:2018-09-03 10:01:22

标签: c++ pointers char

我试图通过使用char给函数内的变量提供一些strcpy。而且出现以下错误

[Error] declaration of 'char str3 [100]' shadows a parameter
[Error] invalid initialization of non-const reference of type 'std::string& {aka std::basic_string<char>&}' from an rvalue of type 'char*'
[Note] in passing argument 2 of 'void read_string(std::string&, std::string&)'

这是我的代码,如下所示:

#include <iostream>
#include <string.h>
using namespace std;

void read_string(std::string &to, std :: string &str3)
{
    to = "test";
    std::cout << &to << std::endl;
    char str3[100];

    strcpy (str3,"copy successful");
    std::cout << str3<<std :: endl;


}

  int main()
  {
    std::string s = "This should be changed.";
    char ss[100];
    read_string(s,ss);
    std::cout << &s << std::endl;
    std::cout<<ss<<std::endl;
    return 0;
  }

1 个答案:

答案 0 :(得分:4)

您的函数体内的函数参数std::string &str3char str3[100];的名称相同,您需要更改一个变量名称。