这是我的字符串.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"