#include <iostream>
int main()
{
int x = 10;
int y = 20;
std::cout << "[交換前]\n";
std::cout << "x=" << x << ", y=" << y << "\n";
int tmp; // x, y の交換のために一時的に使用する変数
tmp = x;
x = y;
y = tmp;
std::cout << "[交換後]\n";
std::cout << "x=" << x << ", y=" << y << "\n";
return 0;
}
|
#include <iostream>
void swap(int x, int y); // 関数のプロトタイプ
int main()
{
int x = 10;
int y = 20;
std::cout << "[交換前]\n";
std::cout << "x=" << x << ", y=" << y << "\n";
swap(x, y); // 関数による交換操作 (?)
std::cout << "[交換後]\n";
std::cout << "x=" << x << ", y=" << y << "\n";
return 0;
}
void swap(int x, int y)
{
int tmp; // x, y の交換のために一時的に使用する変数
tmp = x;
x = y;
y = tmp;
}
|
(ヒント追加) 「x、y のアドレスを表示する命令」とは、例えば std::cout << "x のアドレスは" << &x << "、y のアドレスは" << &y << "\n" ; のようにすればよい。これを、 ・x と y に初期値を代入している部分 ・値が交換されている部分 ・プログラムの最後に x と y の値を表示している部分 の位置などに挿入し、それぞれの x、y が実際にメモリでどこに位置するかを考えることになる。 「表示している x、y 」と「交換している x、y 」は同じと言えるだろうか? |