C中的指针vs指针指针

时间:2015-04-04 02:00:02

标签: c pointers

我有点困惑,所以我首先解释一下我的理解,希望有人可以纠正我并解释我哪里出错了。在C中,参数是通过值传递的,所以如果我们想要从传递给它的函数中改变指针,我们必须将参数定义为指向指针的指针,这样我们就可以修改实际的指针而不是比价值。如果这是正确的,有人可以解释sprintf()函数如何设法更改* str指针?

1 个答案:

答案 0 :(得分:4)

sprintf函数不会更改*str指针,它会更改*str指针指向的数据。

示例:

char *str = malloc(20);
sprintf(str, "hello %s", "world");
// str has not changed, only the data it points to has