如何将变量移交给* char函数?

时间:2019-01-28 17:58:55

标签: c function char

我尝试使用char *line;将此指针rle_code(&line);移交给该函数:

char *rle_encode(char *line)
{

    return line;
}

我在这里做什么错了?

1 个答案:

答案 0 :(得分:-1)

line已经隐式指向line中字符串的第一个元素。传递&line时,您传递的是指向字符串中第一个元素的指针。

如果您想清楚地说明要传递的内容,可以通过&line[0]-与传递line相同,但是可以更清楚地说明您要传递的内容。

看看研究此代码的输出是否有助于您理解间接级别:

char *line = "Hello World";
char **p = &line;
printf("%p\n", (void *)line);
printf("%p\n", (void *)&line[0]);
printf("%p\n", (void *)&line);
printf("%p\n", (void *)p);
printf("%s\n", (char *)*p);