【发布时间】:2018-09-15 06:25:30
【问题描述】:
在传递指向函数的指针和通过引用调用函数时,我真的看不出有什么区别。我说的对吗
#include <stdio.h>
int multi;
int multiplication(int *a, int *b){
multi = (*a) * (*b);
return multi;
}
int main()
{
int X = 2, Y=3;
multiplication(&X, &Y);
printf("%d", multi);
return 0;
}
【问题讨论】:
-
你在比较什么?我只看到一个函数。
-
calling by reference是什么意思?将指针传递给指针?对于您的示例,您不能将新指针分配给a或b。你问的是这个吗? -
在乘法函数中我使用指针传递参数,然后使用引用调用函数,这样说对吗?
-
您的意思是通过引用调用函数还是通过引用传递参数?通过引用调用函数将涉及 C 中的 function pointer,其中“引用”通常使用指针实现。
-
如果您查看旧的 C 书籍,尤其是 2003 年之前的书籍,他们可能会通过非常类似于您所展示的示例来讨论“通过引用传递”。他们不会为此道歉。如今,如果您说这是“通过引用传递”,那么在 C++ 和 Java 时代长大的人会权威地说您很不了解,不,这不是通过引用传递,而是“模拟”通过引用传递。但是有一天,即使是博学多才、受人尊敬的程序员也会说这是“通过引用传递”。
标签: c