声明之后
void insert_LL(Node *head, int data);
当被调用时,头指针的副本到达该函数,因此如果在头部添加节点,则改变头的值。但是,因为我们有头的本地副本所以实际的头指针不会改变。所以我们声明如下
void insert_LL(Node **head, int data);
我的问题:
上述说明是否正确?
如果是,那么这意味着在C中,它始终是值传递(在函数中到达指针的副本),这与Java中的相同。我是对的吗?
如果是,那么如何通过引用/指针进入图片?
答案 0 :(得分:1)
1-是
2-是
3- In C, Pass-by-reference is simulated by passing the address of a variable (a pointer) and dereferencing that address within the function to read or write the actual variable. This is referred as "C style pass-by-reference.".
答案 1 :(得分:0)
按引用传递不是C中使用的术语。传递指针变量的地址值。编译器存储对变量的引用,其中包含赋予变量的内存位置的名称。
引用和指针之间的主要区别在于“指针”可以取任何地址值,除非使其成为“const”。而当你通过参考,你不能。
What are the differences between a pointer variable and a reference variable in C++?
这个主题将完成所有需要。