シェン小さな学習C ++リファレンス8--

まず、参照の概念

私たちは、別名参照データを想像することができることにより、タイプ+ +参照名=変数名  定義します 

私たちは、データの参照名を変更すると、元の変数名に対応するデータが変更されます。コードは以下の通りであります:

int型、A = 1 ;
    INT&B = ; 
    coutの << B << てendl; = 2 ; 
    coutの << B << てendl; 
    B = 1 
    coutの << <<てendl;
コードの表示1

共通メモリ内のデータとして2つの変数を理解することができ、我々は、元の変数の参照と住所を印刷することができます。

    int型、A = 1 ;
    INT&B = ; 

    coutの <<&<< てendl; 
    coutの <<&B <<てendl;
コードの表示2

あなたは、2つのアドレスが同じに見つけることができます

第二に、参照のスコープ

もう一つの変数が参照され、自然の名前ですが、この文の変数と元の変数名は、メモリアドレスを共有します

  次のオブジェクトを参照することができます。

1.int、フロート、ダブル、文字や変数の定義の他のタイプ

2.ポインタ変数はint *; int型*&P = A;

3.定数可変のconst int型&H = 3

         const int型* B;のconst int型*&PB

4.アレイ

5.参考(無制限の入れ子人形)

  次のオブジェクトを参照することはできません。

1.void変数(私は最後Shayongで、この引用を知りません

2.いいえ引用文献、全く参照ポインタ(入れ子人形の禁止)がありません

3.なしヌル参照、ヌル値へのポインタのポイントとして、すなわち、同じではありません

 

第三に、引用したアプリケーション

1.関数への仮パラメータを作ります

例えば、簡単なデータ交換機能

引数としてポインタはこのようであれば:

書式#include <iostreamの>
 使用して 名前空間はstdを、

ボイドスワップ(INT * X、INT * Y)
{ 
    int型の TEMP = * X。
    * X = * Y。
    * Y = TEMP。    
} 

int型のmain(){
     int型、X = 1、Y = 2 
    スワップ(&X&Y)。
    裁判所未満 << " X = " << X << てendl; 
    COUT << "Y = " << Y << ENDL。
}
コードの表示3

参照は書くことができた場合:

書式#include <iostreamの>
 使用して 名前空間はstdを、

ボイドスワップ(INT&X、INTY)
{ 
    int型温度= X。
    X = Y。
    Y = TEMP。    
} 

int型のmain(){
     int型、X = 1、Y = 2 
    スワップ(X、Y)
    裁判所未満 << " X = " << X << てendl; 
    COUT << "Y = " << Y << ENDL。
}
コードの表示4

**同じ名前の、引数の同じタイプは、コンパイラが使用する機能どのような識別を任せることはできません

 

関数は、複数の戻り値の役割を果たし2.みよう

我々は、直接外部変数の結果を受け取るために参照して、複数の機能を使用することができ

究極無敵バージョンV2.0のアップデートを行うことができます。この時、宇宙のスーパー無敵落雷のサイクロン

書式#include <iostreamの>
 使用して 名前空間はstdを、
INT MAX(int型int型B)
{ 
    場合(> b)は
    { 
        返します
    } 
    戻りB。
} 
int型分(int型 A、int型B)
{ 
    場合(< B)
    { 
        返します
    } 
    戻りB。
} // 比较

空隙 findst(INT * P、int型 H、INT L、INT(* FUNC)(INTINT)、INT&RES、INT&Y、INTX)
{ 
    RES = * P。
    int型 NUM = 0 ;
    以下のためにINT iが= 1 ; I <H * L; I ++ ){
         int型 BAK = FUNC(RES、P [I])。
        もし(!RES = ミョンバク){ 
            RES = BAK; 
            NUM = I; 
        } 
    } 
    、Y = NUM / L + 1 
    X = NUM%のL + 1;
     戻り値; 
} // "健康警告" 
INT メイン()
{ 
    / * マトリックス戦闘* /  
    int型 [D 3 ] [ 4 ] = {{ 1234 }、{ 4567 }、 { 78910 }};
     INT * = P&D [ 0 ] [ 0 ];
     INT RES、X、Y、
    findst(P、34。、MAX、RES、Y、X); 
    COUT << " 最大数である" << RES << " \ N-その上に" << << Y " ライン" << << X " " << ENDL; 
    findst(P、34。 分、RES、Y、X)、
    COUTは、 << " 最小数である" << RES << " \ N-その上に" << << Y " " < <X << " " ; 
}
無敵の宇宙無敵落雷のサイクロンアルティメットエディションV2.1

 

3.戻り値として引用され、値がダイバーシティモードを達成するために、コピー、リターンではありません

左辺値として4.関数コール

5. const参照定義

6.リターンスタック参照変数

 

おすすめ

転載: www.cnblogs.com/applerun/p/12572045.html