Module: (C++) サブルーチン: プロシージャと関数 - 1


Problem

12/12

引数の変更

Theory Click to read/hide

タスク
2 つの変数の値を交換するプロシージャを作成します。

このタスクの特徴は、プロシージャで行われた変更を呼び出し側プログラムに認識させる必要があることです。

次のような手順を書いてみます。 void Swap ( int a, int b ) // このようなプロシージャパラメータの記述では、 { // 引数 (x と y) の値がコピーされます。 int c; // 変数 a と b は x と y に関係のない独立変数です c = a; a = b; b=c; } 主要() { int x=1、y=2; スワップ(x, y); // 変数 x と y (引数) の値がパラメータ a と b にコピーされます cout << 「x=」 << ×<< ", y=" << y; // x=1、y=2 } このプログラムを実行すると、変数 xy の値が変化していないことがわかります。パラメータで引数の値を変更するには、参照によるデータの受け渡しを使用する必要があります。これを行うには、データ型の名前の後に記述します。サブルーチンのヘッダーには、記号& (「アンパサンド」) を入れる必要があります。 void スワップ ( int & a, int & b ) // 変数 a と b はメモリ内の変数 x と y のアドレスを取得します { int c; c = a; a = b; b=c; } 使用法: 参照によって引数を渡す場合、プロシージャを呼び出すときにこの場所に含めることができるのは変数名 (数値や算術式ではありません) のみです。< br />
次のようなプロシージャを呼び出さないでください: Swap(x, 4 ); Swap(5+x, y);

Problem

2 つの変数の値を入れ替える手続きを書きなさい。追加の変数を使用せずに記述してみてください。誤りがあれば訂正してください。