java - 按值传递与按引用/指针传递的混淆

标签 java c

以下声明

 void insert_LL(Node *head, int data);

调用时,头指针的副本到达函数,因此如果在头部添加节点,则头的值会更改。但是,由于我们有 head 的本地副本,因此实际的头指针不会改变。所以我们声明如下

 void insert_LL(Node **head, int data);

我的问题:

  1. 以上解释正确吗?

  2. 如果是,则意味着在 C 中,它始终是按值传递(在函数中到达指针的副本),这与 Java 中相同。我说得对吗?

  3. 如果是,那么通过引用/指针传递如何进入图片?

最佳答案

1-是

2-是

3- 在 C 语言中,通过传递变量(指针)的地址并在函数内取消引用该地址来读取或写入实际变量来模拟引用传递。这称为“C 风格按引用传递”。

关于java - 按值传递与按引用/指针传递的混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21327739/

相关文章:

java - 通过 Java 进程生成器执行 bash

java - Arraylist 不断显示最后一个元素 n 次

c - 一些简单的指针问题

c - 从c程序中读取文件中的行得到错误的输出

c - 分析 &、&& 和 |对于这个代码?

java - Java 中嵌套 for 内部的 for 更改为 to

java - Maven项目: Failed to read artifact descriptor

Java 作为 HTTP 服务器 - 是否可以通过 POST 方法获取图像?

c++ - 在 Ubuntu 14.04 中使用 SOIL

c - 如何使用 C 以编程方式 SCP 文件?