gpt4 book ai didi

c++ - 错误 C2664 和 E0167,难倒

转载 作者:太空狗 更新时间:2023-10-29 23:32:11 25 4
gpt4 key购买 nike

我正在参加 C++ 初学者的远程类(class),但无法解决此编译错误。它的编写与示例书中的完全相同,当我的兄弟将其剪切并粘贴到他的 VS2015 中时,它工作正常,但在我的 VS2017 中却没有。我已经卸载并重新安装 VS2017 社区无济于事。

我只编写了 2 周的代码,所以我对此非常非常陌生。

我得到的错误代码是:

错误E0167 “const char”类型的参数与“char”类型的参数不兼容
错误 C2664“void Hello(char )”:无法将参数 1 从“const char [8]”转换为“char”

代码:

// FUNCTION: Hello, prints out a welcome message on the screen.
void Hello(char* name)
{
cout << "Hello " << name << "!";
}

// FUNCTION: Main, program start.
int main()
{
Hello("Krister");
cin.get();
return 0;
}

我真的希望有人能帮我解决这个问题。

祝一切顺利,杰普

最佳答案

const char* 可以引用字符串文字。

char* 不能引用它;这在旧版本的 C 中是可能的,一些旧的 C++ 编译器允许它并发出警告。在现代,这是完全禁止的。

通过将 "Krister" 传递给采用 char* 的函数,您要求编译器尝试将一个转换为另一个;由于上述规则,它失败了,如错误消息所示。

在其中插入一个 const 以获得巨大的成功。

如果该代码来自教科书,丢失它Here is a list of good C++ books .

关于c++ - 错误 C2664 和 E0167,难倒,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48987994/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com