将字符数组传递给c中的函数

时间:2014-09-02 19:21:46

标签: c pointers

void skip(char *msg)
{
  puts(msg+6);
}

char *message="Don't call me";
skip(message);

我怀疑是为什么我们不使用     puts(*(msg + 6))显示从第7个字符开始的文本;
根据我(msg + 6)指的是内存和*(msg + 6)内容

3 个答案:

答案 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);

正如您所看到的,它还希望将指向内容的指针作为参数,而不是实际值。