5.7 C 有 ``按引用传递" 吗?

真的没有。

严格地讲, C 总是按值传递。你可以自己模拟按引用传递, 定义接受指针 的函数, 然后在调用时使用 & 操作符。事实上, 当你向函数传 入数组 (传入指针的情况参见问题 6.4 及其它) 时, 编译器本质上 就是在模拟按引用传递。但是 C 没有任何真正等同于正式的按引用传递或  C++ 的引用参数的东西。另一方面, 类似函数的预处理宏可以提供一种 ``按名称传递"的形式。

参见问题 4.4 和 20.1

参考资料: [K&R1, Sec. 1.8 pp. 24-5, Sec. 5.2 pp. 91-3]; [K&R2, Sec. 1.8 pp. 27-8, Sec. 5.2 pp. 95-7]; [ISO, Sec. 6.3.2.2]; [H&S, Sec. 9.5 pp. 273-4]。

翻译朱群英、孙云, LaTeX2HTML 编译 朱群英 (2005-06-23)