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