【发布时间】:2015-02-08 19:27:24
【问题描述】:
我无法理解 c 如何使用 puts() 来显示消息的一部分。我认为等效的两种方法与该函数的工作方式不同。例如
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)...