为什么如下的代码不行?...请记住在 C 中, 参数是通过值传递的。被调函数仅仅修改了传入的指针副本。你需要传入指针的地址 (函数变成接受指针的指针), 或者让函数返回指针。
5....void*可以用作一般指针只是因为当它和其它类型相互赋值的时候, 如果需要, 它可以自动转换成其它类型; 但是, 如果试图这样转换所指类型为void*之外的类型void** 指针时, 这个转换不能完成。...C有“按引用传递”吗?
答:真的没有。严格地讲,C总是按值传递。你可以自己模拟按引用传递, 定义接受指针的函数,然后在调用时使用 & 操作符。...事实上,当你向函数传入数组时,编译器本质上就是在模拟按引用传递。但是 C 没有任何真正等同于正式的按引用传递或 C++ 的引用参数的东西。