■関数とポインタ(その1)

Last modified: Mon April 03 2018
このページは,基礎工学部システム科学科機械科学コース2年生向けの 「コンピュータ基礎演習」における演習1の教材の1つです.

●ポインタを引数にする関数

さて,ポインタを引数にする関数の作り方は,

    宣言→  型名 関数名(型名 *仮引数名, ...);
    定義→  型名 関数名(型名 *仮引数名, ...) {...}
となる.
    (例)
    void
    f(int *p)
    {
         *p = 7;
    }
これで,引数で指示された場所に7が代入される.
    (例)
    void
    f(int x)
    {
         x = 7;
    }
2つの違いをよく理解しよう.

例1-2 example12.c

ポインタ引数の例として,2つの整数型の変数の内容を交換するという例を示す.

void swap(int *px, int *py)
呼び出し側の変数の値を変更できる例.
ポインタを引数にするので, 関数側で呼び出した側の値を変更することができる.
void xswap(int x, int y)
呼び出し側の変数の値を変更できない例.
上の例とよく似ているが,値を引数にしているので, 関数側で仮引数に対して代入をしても,呼び出し側には影響しない.


[演習1のインデックス] [前の教材(ポインタの基本)] [次の教材(配列とポインタ)]
hirai@me.es.osaka-u.ac.jp