void skip(char *msg)
{
puts(msg+6);
}
char *message="Don't call me";
skip(message);
我怀疑是为什么我们不使用
puts(*(msg + 6))显示从第7个字符开始的文本;
根据我(msg + 6)指的是内存和*(msg + 6)内容
答案 0 :(得分:0)
*msg
本质上是对单个char的引用,而不是对char的字符串的引用。由于这个char *
和char[]
本质上是相同的,你不需要在C中取消引用字符指针,因为编译器会自动从给定的基址完全打印字符串到' \ 0& #39;没有。您也可以参考this了解更多信息。
答案 1 :(得分:0)
#include <stdio.h>
void skip(char *msg) {
puts(msg + 6);
}
int main() {
char *message = "Don't call me";
skip(message);
}
答案 2 :(得分:-1)
这是你可以在puts手册中找到的:
int puts(const char * s);
正如您所看到的,它还希望将指向内容的指针作为参数,而不是实际值。