以下声明
void insert_LL(Node *head, int data);
调用时,头指针的副本到达函数,因此如果在头部添加节点,则头的值会更改。但是,由于我们有 head 的本地副本,因此实际的头指针不会改变。所以我们声明如下
void insert_LL(Node **head, int data);
我的问题:
以上解释正确吗?
如果是,则意味着在 C 中,它始终是按值传递(在函数中到达指针的副本),这与 Java 中相同。我说得对吗?
如果是,那么通过引用/指针传递如何进入图片?
最佳答案
1-是
2-是
3- 在 C 语言中,通过传递变量(指针)的地址并在函数内取消引用该地址来读取或写入实际变量来模拟引用传递。这称为“C 风格按引用传递”。
关于java - 按值传递与按引用/指针传递的混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21327739/