<分区>
我不明白这是什么意思。如果让我尝试猜测,我会说 byValue 参数传递是基于变量值传递参数,所以我在想:
if (a == 1){
PassAnArgumentOrSomething()
}
但这可能是错误的:/
至于byReference,我不知道。
如果有人能帮助我,那就太棒了:)
标签 c
<分区>
我不明白这是什么意思。如果让我尝试猜测,我会说 byValue 参数传递是基于变量值传递参数,所以我在想:
if (a == 1){
PassAnArgumentOrSomething()
}
但这可能是错误的:/
至于byReference,我不知道。
如果有人能帮助我,那就太棒了:)
最佳答案
除了数组和函数(见下文)之外,C 总是“按值”传递参数:将每个参数值的副本传递给函数;该函数不能修改传递给它的实际参数:
void foo(int j) {
j = 0; /* modifies the copy of the argument received by the function */
}
int main(void) {
int k=10;
foo(k);
/* k still equals 10 */
}
如果您确实希望函数修改其参数,您可以使用指针参数来获得所需的效果:
void foo(int *j) {
*j = 0;
}
int main(void) {
int k=10;
foo(&k);
/* k now equals 0 */
}
这有时在其他语言中称为“按引用传递”。
关于c - 什么是 C 中传递的 byValue 和 byReference 参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20442508/