C++——引用呼び出し

2307 ワード

リファレンス呼び出しは何ですか?次の効果を見ればわかります!
一般関数呼び出し
#include 
using namespace std;

void Test_Calculate(int data);

int main()
{
    int a = 5;
    Test_Calculate(a);
    cout << a <return 0;
}

void Test_Calculate(int data)
{
    data = -data;
}
----------    --------------
5
[Finished in 0.6s]

リファレンス呼び出し
#include 
using namespace std;

void Test_Calculate(int& data);

int main()
{
    int a = 5;
    Test_Calculate(a);
    cout << a <return 0;
}

void Test_Calculate(int& data)
{
    data = -data;
}
----------    --------------
-5
[Finished in 0.6s]

通常の関数呼び出しでは,導入された実パラメータが関数に導入されることは明らかであるが,いずれにしても,最終的にはその値の大きさに影響を及ぼさない.しかし、参照呼び出しでは、パラメータのデータ型を宣言した後に&が追加され、導入された実パラメータの数値が変化したことが明らかになった.&が住所を取る役割を果たしていることはよく知られていますが、ここでも同じです.通常の呼び出しは実パラメータの数値を呼び出しただけで、関数の内部操作はある数値に対する操作にすぎず、実パラメータ自体に影響を与えない.しかし,参照呼び出しは実パラメータのアドレスを取ったため,実質的に実パラメータのアドレスの数値を操作するので,最後に必ず実パラメータ自体の数値に影響を及ぼす.
この関係はあなたがコードを修正する必要があるように、あなたのソースコードはcディスクにありますが、あなたはcディスクからdディスクにコピーしました.あなたはdディスクのコードを修正するだけで、最後に本当のソースコードは何も変わりません.しかし、逆に、リファレンス呼び出しはソースコードを直接変更するように、最後にソースコードが変わるに違いありません.