有很多类似的询问,但在我的情况下,我不明白什么是不起作用:
int mysize = 0;
mysize = sizeof(samplestring) / sizeof(*samplestring);
std::cout << mysize << '\n' << samplestring;
Run Code Online (Sandbox Code Playgroud)
这输出:
4
Press 'q' to quit.
Run Code Online (Sandbox Code Playgroud)
这怎么可能?4绝对不是这个字符串的大小.我甚至尝试了以下结果,结果相同:
mysize = sizeof(samplestring) / sizeof(samplestring[0]);
编辑:好的,这是声明:
char *samplestring = "Start.";
Run Code Online (Sandbox Code Playgroud)
我在C++上,但我需要使用只接受char*的函数.稍后在代码中我将新字符串分配给该变量,例如:
samplestring = "Press 'r' for red text.";
Run Code Online (Sandbox Code Playgroud)
是的,编译器给了我警告,但我不知道如果我不能覆盖它们怎么能使用不同的字符串...