我无法理解 c 如何使用 put() 来显示消息的一部分。我认为等效的两种方法对于该函数的工作方式并不相同。例如
void skippie(char *msg)
{
puts(msg + 6);
}
char *msg = "Don't call me!";
skippie(msg);
这编译得很好,但事实并非如此
void skippie(char *msg)
{
puts(msg[6]);
}
char *msg = "Don't call me!";
skippie(msg);
puts()如何区分两者并只编译其中之一?编译器提示它需要一个“const”字符,但即使我尝试使用该语法它也会失败。谁能解释一下吗?
最佳答案
索引运算符也会取消引用指针,因此
msg[6]
相当于 *(msg + 6)
,而不是 msg + 6
。
此外,您无法将 const char*
传递给函数,而函数需要 char*
。即,您还必须更新函数签名。
关于c - put() 与 const char 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28398328/