Cの参照ポインタとの関係++

1.概念と使用方法を参照します

概念:参照は、エイリアスの変数(目標)、全く同じ変数参照と直接操作の動作です。
     ヒント:引用不是定义一个新的变量
定義の形式は:
    タイプ&参照変数名=変数名がすでに定義されている;
使用法:
例えば:

 int a = 5;
 int& b = a;

これは、B参照参照で、bは別名です。

2.参照パラメータを行います

私たちはしばしば、Cでポインタパラメータで実行します。

Func(int *a) ;
int main()
{
    int arr[1000];
    Func(arr);
}

このように、我々は、プロセスの効率を高めるために、引数としてポインタを使用します。したがって、C ++ *参照型の導入、およびポインタとして彼の効果、もちろんポインタの、あまりにも柔軟性があり、安全でない内部につながることができ、実際には、基礎となる参照ポインタで、次のように紹介されます。
彼は、引数として引用しました:

Func(int& a) ;
int main()
{
    int arr[1000];
    Func(arr);
}

彼はリスクを回避するために、その効果ポインターを達成するために、引数として良いポインタを引用しました。

関数内のパラメータxの値を変更したくない場合は、頻繁に参照パラメータ渡しを使用しています。

void ReadBigData (const bigData& x)//此时不需要在函数内部改变参数的值我们赋予参数常属性
{
int a = x. array[100];
}

3.参照は、戻り値を行います

Reference関数の戻り値、および機能を定義するときに、関数名の前に必要&

int ret = 0;//全局变量
int Add1(int a, int b)
{
    ret = a + b;
    return ret;
}

int& Add2(int a, int b)//引用做返回值
{
    ret = a + b;
    return ret;
}

int main( )
{
    printf("%d\n", Add1(5,6));
    printf("%d\n", Add2(4,5));
    return 0;
}

参考文献は、戻り値の利点を行います:
関数参照の戻り値の最大の利点は、メモリ内の戻り値のコピーを生成することではありません。

4.アセンブリレベル特性基準を参照

書き込み絵は、ここで説明しました

結論:

  1. 一時変数への参照を返しません。

  2. オブジェクトがまだ存在する現在のスコープの機能を返した場合、それはより効率的であるので、返された参照を使用することが好ましいです。

参照とポインタとの接触の違い:

▶違い:

  1. ポインタは、エンティティであり、唯一の参照は、エイリアスです。

    1. 参照間接参照(*)なしで使用する場合、ポインタを間接参照必要と

    2. 初期化中に1回だけの参照は、次いで不変定義され、ポインタ変数と、

    3. CONST修飾ポインタ不変; NO参照はポインタCONSTがあり、CONSTありません。

    4. ヌル参照は、ポインタを空にすることはできません。

    5. 「参照のsizeofは」尖った変数(オブジェクト)を得大きさであり、「はsizeofポインタ」ポインタ自体が得られた(可変アドレスまたは尖った物体)のサイズであり;そして

  2. ポインタと増分は(++)運用意義を引用し、同じではありません。

    ビューメモリ割り当ての観点から8:ポインタ変数に割り当てられたプログラム記憶領域、及びメモリ領域の参照を割り当てる必要がありません。

▶類似性:メモリの両方の概念アドレス、一緒にポインタは、メモリの内容はアドレスによって指し示され、メモリ参照の片は別名です。

公開された94元の記事 ウォンの賞賛237 ・は 70000 +を見て

おすすめ

転載: blog.csdn.net/qq_38646470/article/details/79681871