use*_*392 2 c++ pointers reference
C++中以下参数传递机制有什么区别?
void foo(int &x)
void foo(int *x)
void foo(int **x)
void foo(int *&x)
Run Code Online (Sandbox Code Playgroud)
我想知道参数在哪种情况下通过值传递或通过引用传递.
void foo(int &x)
Run Code Online (Sandbox Code Playgroud)
将引用传递给整数.这是一个输入/输出参数,可以像函数中的常规整数一样使用.值被传递回调用者.
void food(int *x)
Run Code Online (Sandbox Code Playgroud)
将指针传递给整数.这是一个输入/输出参数,但它像指针一样使用,必须取消引用(例如*x = 100;
).您还需要检查它是否为空.
void foo(int **x)
Run Code Online (Sandbox Code Playgroud)
将指针传递给指向整数的指针.这是整数指针类型的输入/输出参数.如果要更改整数点的值(例如*x = &m_myInt;
),请使用此选项.
void foo(int *&x)
Run Code Online (Sandbox Code Playgroud)
将引用传递给指向整数的指针.像上面一样,但不需要取消引用指针变量(例如x = &m_myInt;
).
希望有道理.我建议使用typedef来简化指针和引用符号的使用.