C++の基本中の基本その2

※自分用メモ
※引用元「ローベルのC++入門講座」

【void型】

関数には引数を持ったり、戻り値のない関数もあります。 以下のプログラム:

#include <iostream>
using namespace std;

int add(int x, int y)
{
    return x + y;
}

int main()
{
    cout << "add(3, 4) = " << add(3, 4) << endl;
    cout << "add(1, 2) = " << add(1, 2) << endl;
}

結果

add(3, 4) = 7
add(1, 2) = 3

では関数を呼び出した後、答えを表示させました。 このように表示する部分が上下同じ時の場合は関数にしてしまいましょう。 しかもこの関数は戻り値の必要のない関数なので、戻り値の方を「void」にします。 「void」とは空虚や無効という意味です。void型は簡単に言うと何もしない。ということです。

#include <iostream>
using namespace std;

int add(int x, int y)
{
    return x + y;
}

void show(int x, int y)
{
    cout << "add(" << x << ", " << y << ") = " << add(x, y) << endl;
}

int main()
{
    show(3, 4);
    show(1, 2);
}

結果

add(3, 4) = 7
add(1, 2) = 3

というように関数を呼び出すだけで同じ結果になります。 coutendlの行をいちいち書くのがめんどくさいので こうやって書く!

グローバル変数とローカル変数】

関数の中で変数の宣言ができますが、関数の外でも変数を宣言することが可能です。 以下のプログラムのように

#include <iostream>
using namespace std;

int x = 5;
int y = 1;

int add()
{
    return x + y;
}

int subtract(int x, int y)
{
    x = 4;
    y = 2;
    return x - y;
}

int main()
{
    int x = 2;
    int y = 7;
    cout << x + y << endl;
    cout << add() << endl;
    cout << subtract(x, y) << endl;
}

結果

9
6
2

つまり

  1. 関数の外で宣言した変数はそれ以降に書かれた関数すべてで使える
  2. 関数の中で宣言した変数はその中でしか使えない
  3. 関数の中で宣言した変数はその関数が終わるときに廃棄される