This is very C-like code, not C++.
Basically, when something is passed by-value the function operates on a copy of the data:
void foo(int i)
{
i = 5; // copy is set to 5
}
int x = 7;
foo(x);
// x is still 7
In C, you instead pass a pointer to the variable, and can change it that way:
void foo(int* i)
{
*i = 5; // whatever i points to is set to 5
}
int x = 7;
foo(&x);
// x is 5
For you, instead of an int
it's a digit*
. (Resulting in a pointer to pointer.)
In C++, references were introduced. A reference is an alias to another object. So you'd do something like this:
void foo(int& i) // i is an alias to another value
{
i = 5; // x is set to 5
}
int x = 7;
foo(x); // pass x as alias, not address of x.
// x is 5
A reference is generally preferred, since it enforces that you actually refer to an object, and simplifies both calling and operating code.
Of course in C++ you wouldn't implement a list yourself, you'd use std::list
.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…