我尝试使用char *line;
将此指针rle_code(&line);
移交给该函数:
char *rle_encode(char *line)
{
return line;
}
我在这里做什么错了?
答案 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);