我有一个问题列表,我想问这些问题来探讨候选人的嵌入式系统编程 C 技能。我的标准问题之一,也在很多公共问题列表中,但我开始认为这是一个糟糕的问题:
“解释或对比 C 中的按值传递和按引用传递”
我告诉受访者,这个问题与 C++ 引用无关,我正在寻找关于将指针传递给变量与变量以及被调用者如何修改指针引用的变量的解释。关于如何将指针传递给结构更有效的解释的额外要点。
问题来了:C 中真的有“通过引用传递”吗?
被调用者的签名清楚地定义了传递的内容。这不像您可以将 x 或 &x 传递给函数并让编译器弄清楚要做什么。所以我认为一切都是 C 是按值传递的,而按引用传递实际上只是传递指针的值。
有什么根本不同的东西吗
void f(int *xarg);
...
int x;
int *xp = &x;
f(xp);
对比
f(&x);
谢谢,安德鲁