==== 関数を使った値のスワップ(交換)できるかな? ====
#include
using std::cout;
using std::cin;
using std::endl;
//2つの値を表示する関数
void printAB(double _a, double _b)
{
cout << "(a, b) = (" << _a << ", " << _b << ")" << endl;
}
//2つの変数の値を入れ替える関数(交換できない(´;ω;`))
//changeAB(0.0, 128.7); _a <- 0.0 _b <- 128.7
void changeAB(double _a, double _b) //_a,_b 仮引数
{
double tmp;
tmp = _a; //tmpにaを保存 tmp:1.2 _a:1.2 _b:200.5
_a = _b; //_aに_bを代入 tmp:1.2 _a:200.5 _b:200.5
_b = tmp; //保存しておいた_aを_bに代入 tmp:1.2 _a:200.5 _b:1.2
cout << "---ここは関数内です---" << endl;
printAB(_a, _b);
}//<-仮引数_a, _bの生存範囲
int main() {
double A = 1.2;
double B = 200.5;
printAB(A, B); //交換前のA,Bを表示 A,B 実引数
//printAB(1.2, 200.5);
changeAB(A, B); //AとBを交換する関数
printAB(A, B); //交換後のA,Bを表示
std::swap(A, B);
printAB(A, B); //交換後のA,Bを表示
}
//①引数の働き(仮引数と実引数)
// 実引数の値は、仮引数にコピーされます!
//②変数の有効範囲
// 仮引数の有効範囲は関数ブロックの中だけ!
==== 配列と関数と交換 ====
#include
using std::cout;
using std::cin;
using std::endl;
//引数に配列をとり、渡された配列の中身を全部表示する関数
//int _arr[] :配列の名前(配列全部は渡せない)
//int _num :配列の要素数
void printArray(int _arr[], int _num)
{
for(auto i=0;i<_num;i++)
{
cout << "[" << i << "]=" << _arr[i] << endl;
}
}
int main() {
const int anum = 10;
int Data[anum]={30, 5, 21, 8, 12, 28, 14, 1, 0, 18};
printArray(Data, anum);
for(auto i=0; i