【发布时间】:2020-03-18 19:59:47
【问题描述】:
所以,我知道字符串文字的类型为const char[N]。而且我也知道,如果我们在某个函数中有const char[] 参数,编译器会自动将其转换为const char*。
但是为什么我总是收到编译器错误消息说字符串文字的类型为const char*?
这里有几个例子:
void f(int x) {}
int main()
{
f("Hello");
return 0;
}
错误:invalid conversion from 'const char*' to 'int'
void f() {
throw "Hello";
}
int main()
{
try{ f(); } catch (int x) { std::cout << "No\n";}
return 0;
}
在终端:terminate called after throwing an instance of 'char const*'
编辑:我正在使用 GNU GCC。
【问题讨论】:
-
@Jabberwocky stackoverflow.com/questions/12517983/…
-
我的编译器说
candidate function not viable: no known conversion from 'const char [6]' to 'int' for 1st argument -
@GRRohman 对,所以这个链接应该回答你的问题。
-
@Jabberwocky 很遗憾,没有。
标签: c++ string-literals