1.スタックに格納されたデータ型の値、スタックに格納された基準データ値のタイプは、スタックは、その参照に格納されています。
例えば:(例えばC ++、)、他の同様の言語へ
基本データ型:
// スタックI、iは言ってあるアドレスを持つ変数、10に格納された値に格納されたメモリを割り当て INT iが= 10。
参考データの種類:
// メモリアレイを開くことになりますスタックに格納され、{1,2,3,4} // 変数ARRを格納するためのメモリを開くスタック、ヒープに格納されているARR値{1,2,3,4}アドレス自体ARR独自のアドレスを有することに留意すべきであるが、アドレス自体ARR格納されている INT [] = ARR { 1、2、3、4 }。
参照データ型パラメータの受け渡しを参照によって渡され、即ち、データ型の値がパラメータ値に渡された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 [] = { 1、2、3、4、5 }; //は、関数値で最初の配列に変更します図9は 、(ARR)を形質転換 COUT << ARR [ 0 ] << ENDL; システム(" PAUSE " ); 戻り 0 ; }
出力: