我有点困惑,所以我先解释一下我的理解,希望有人能纠正我并解释我哪里出错了。在 C 中,参数是按值传递的,所以如果我们想在传递给它的函数中更改指针,我们必须将参数定义为指向指针的指针,这样我们就可以修改实际的指针而不是比值。如果这是正确的,有人可以解释 sprintf() 函数是如何改变 *str 指针的吗?
最佳答案
sprintf
函数不会更改*str
指针,它会更改*str
指针指向的数据。
例子:
char *str = malloc(20);
sprintf(str, "hello %s", "world");
// str has not changed, only the data it points to has
关于c - C中的指针与指向指针的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29441939/