多字符字符常量 [-Wmultichar],从 'int' 到 'char' 的转换溢出,ISO C++禁止将字符串常量转换为 'char*'
multi-character character constant [-Wmultichar],overflow in conversion from 'int' to 'char',ISO C++ forbids converting a string constant to 'char*'
这是我的字符串.cpp
#include <iostream>
using namespace std;
int main(int argc, char const *argv[])
{
char name_str = 'anaa';
char *name = "John";
return 0;
}
它在我的终端上显示了一些警告,这些警告是:-
string.cpp:6:21: warning: multi-character character constant [-Wmultichar]
char name_str = 'anaa';
^~~~~~
string.cpp: In function 'int main(int, const char**)':
string.cpp:6:21: warning: overflow in conversion from 'int' to 'char' changes value from
'1634623841' to ''a'' [-Woverflow]
string.cpp:7:18: warning: ISO C++ forbids converting a string constant to 'char*' [-
Wwrite-strings]
char *name = "John";
^~~~~~
请任何人帮助我理解这些警告!!!我看到有人已经就堆栈溢出问题提出了同样类型的问题,但没有任何详细解释为什么会发生这种情况?
'anaa'
不是字符,因此不能将其分配给char
类型。它也不是字符串("anaa"
是一个("John"
是一个字符串常量,因此必须将name
声明为const char *name = "John"
相关文章:
- 将无符号char*转换为std::istream*C++
- 为什么这个函数将"const char*"转换为"void* const"而不是"const void*"
- 将函数参数"const char*"转换为"std::string_view"是
- C ++如何在使用"tolower"时将char转换为int
- 有没有办法在C++的赋值中将"char**"转换为"double"?
- JavaCPP 错误:无法将参数"1"的"char*"转换为"Abc*
- 为什么从 char 转换为 std::byte 可能是未定义的行为?
- 如何在虚幻引擎4中将char*转换为TCHAR?
- C++:将模板类型 char 转换为 std::string
- strcmp/char* 转换无法按预期工作
- C++中的SQLite char*转换
- 无法从 const char* 转换为 const char *&
- 在 C++ 中将 char 转换为 int,而无需符号位传播
- 如果必须包含西里尔字符,如何将 char* 转换为 std::string?
- 试图使用strCMP时的char转换错误
- 无法从'const char *'转换为'LPCTSTR'
- 将 std::vector<char> 转换为字符* 会导致字符缺陷
- 使用 static_cast 将 char 转换为 int c++
- 如何在 C++(MFC) 中将 char* 转换为 LPCTSTR
- 无法将const char转换为字符串构造字符串