データ型の値とデータ型参照のプログラミング言語との間の差

1.スタックに格納されたデータ型の値、スタックに格納された基準データ値のタイプは、スタックは、その参照に格納されています。

例えば:(例えばC ++、)、他の同様の言語へ

基本データ型:

// スタックI、iは言ってあるアドレスを持つ変数、10に格納された値に格納されたメモリを割り当て
INT iが= 10

参考データの種類:

// メモリアレイを開くことになりますスタックに格納され、{1,2,3,4}
 // 変数ARRを格納するためのメモリを開くスタック、ヒープに格納されているARR値{1,2,3,4}アドレス自体ARR独自のアドレスを有することに留意すべきであるが、アドレス自体ARR格納されている
INT [] = ARR { 1234 }。

参照データ型パラメータの受け渡しを参照によって渡され、即ち、データ型の値がパラメータ値に渡された2値は、変化の関数内のパラメータは、引数の値に影響を与えないパラメータに渡され、渡されました渡された値は、機能とパラメータの変更は、引数の値に影響を与えるには、アドレスです。もちろん、データは、引数として渡されたアドレス・タイプ・パラメータの値であってもよく、これは非常に参照です。

例えば:(例えばC ++、)、他の同様の言語へ

値が渡されます。

#include <iostreamの>
 使用して 名前空間STD; 

ボイドスワップ(INT NUM1、INT NUM2){ 
    COUT << " NUM1切り替え前の値:" << NUM1 << ENDL; 
    COUT << " NUM2切り替え前の値:" << << NUM2 ENDL;
     INT TMP = NUM1; 
    NUM1 = NUM2; 
    NUM2 = TMP; 
    COUT << " 交換後NUM1値:" << NUM1 << ENDL、
    COUT <<交換後のNum2をの値:endl; 
    システム("


    休止" );
     戻り 0 ; 
}

出力:

(アドレスを渡された値を使用して)参照によって渡されます。

 

#include <iostreamの>
 使用して 名前空間STD; 

ボイドスワップ(INT * NUM1、INT * NUM2){ 
    COUT << " NUM1前の値の交流:" << NUM1 * << ENDL; 
    COUT << のNUM2切り替え前の値:" << NUM2 * << てendl;
     int型 TMP = * NUM1;
     * * = num1をnum2の;
     num2の= * TMP; 
    COUT << " NUM1を切り替え後の値:" << NUM1 * << てendl; 
    COUT <<交換後のNum2を値:* Num2を<< << ENDL; 
} 


int型のmain()
{ 
    int型、A = 1 ;
     int型の B = 2 ;
     INT * P1 =&;
     INT * P2 =&B; 
    COUT << 以前に渡されていない値の引数:" << << ; ENDL 
    COUT << " :以前にBの引数値を通過しない" << B << ENDL; 
    ;スワップ(P1、P2)
    COUT << " 値の引数が渡された後に:" << A << てendl;
    裁判所未満 << " 引数が渡された後、Bの値:" << B << ENDL; 
    システム(" 一時停止" );
     戻り 0 ; 
}

出力

参照渡し(参照データ自体を入力し、C ++では、配列は、参照データ型です)。

ボイド変換(int型ARR []){ 
    ARR [ 0 ] = 9 ; 
} 

int型(メイン){
     int型 ARR [] = { 12345 };
         //は、関数値で最初の配列に変更します図9は   
    、(ARR)を形質転換
    COUT << ARR [ 0 ] << ENDL; 
    システム(" PAUSE " );
     戻り 0 ; 
}

出力:

おすすめ

転載: www.cnblogs.com/xiximayou/p/12080317.html