Tag: 通过引用传递

指针是否考虑了在C中通过引用调用的方法?

在我的大学的C语言程序devise课上,她所写的教授和随后的书在引用C中的指针时使用了call或pass by reference这个术语。 我的教授认为是“引用函数”的一个例子: int sum(int *a, int *b); 我的教授认为是“价值函数”的一个例子: int sum(int a, int b); 我读过 C不支持通过引用调用。 就我的理解而言, 指针传递的是价值 。 基本上,说指针是C通过引用传递的方式是不正确的 ? 如果你不能通过C语言的引用传递,但是可以使用指针作为替代方法,会更准确吗? 更新11/11/15 从我提出的问题的方式来看,我认为有关术语的辩论已经出现,实际上我看到了两个具体的区别。 传递引用(当前主要使用的术语):在C ++等语言中使用的特定术语 通过引用(我的教授用作解释指针的范式的术语):在C ++之类的语言之前使用的通用术语被开发出来,因此在术语被重写之前 在阅读@Haris更新后的答案之后,为什么这不是那么黑白。

在C中通过引用传递

如果C不支持通过引用传递一个variables,为什么这个工作? #include <stdio.h> void f(int *j) { (*j)++; } int main() { int i = 20; int *p = &i; f(p); printf("i = %d\n", i); return 0; } 产量 $ gcc -std = c99 test.c $ a.exe 我= 21

Java:通过引用传递int的最佳方式

我有一个parsing函数,它parsing字节缓冲区中的编码长度,它将parsing的长度作为int返回,并将一个索引作为整数arg存入缓冲区。 我希望函数根据它被parsing的内容来更新索引,也就是想通过引用来传递索引。 在C我只是传递一个int * 。 Java中最简洁的方法是什么? 我目前正在考虑通过索引参数。 作为一个int[] ,但它有点难看。

为什么这个对象不是通过引用传递给它的东西呢?

我知道在JS中,对象是通过引用传递的,例如: function test(obj) { obj.name = 'new name'; } var my_obj = { name: 'foo' }; test(my_obj); alert(my_obj.name); // new name 但为什么不下面的工作: function test(obj) { obj = {}; } var my_obj = { name: 'foo' }; test(my_obj); alert(my_obj.name); // foo 我已经设置对象{} (空),但它仍然说foo 。 任何人都可以解释这背后的逻辑吗?

在Java中如何做相当于基元传递的参考

这个Java代码: public class XYZ { public static void main(){ int toyNumber = 5; XYZ temp = new XYZ(); temp.play(toyNumber); System.out.println("Toy number in main " + toyNumber); } void play(int toyNumber){ System.out.println("Toy number in play " + toyNumber); toyNumber++; System.out.println("Toy number in play after increement " + toyNumber); } } 会输出这个: 玩具中的数字5 发牌后的玩具号码6 玩具编号在主要5 在C ++中,我可以通过引用传递toyNumbervariables来避免阴影,即创build一个相同variables的副本,如下所示: […]