課題41


  1. 次のプログラムに含まれる関数 swap は、 仮引数の2つの変数の内容を入れ替えます。

    /*
    ** プログラム名: kadai41
    ** 動作: ポインタを使ったデータの入れ替え
    ** 作者: 自分の名前、学籍番号
    ** 日付: 今日の日付
    */
    #include <stdio.h>
    
    void swap(int a, int b)
    {
        int t;
    
        t = a;
        a = b;
        b = t;
    
        printf("swap の中: a = %d, b = %d\n", a, b);
    }
    
    int main(void)
    {
        int a, b;
    
        a = 10;
        b = 20;
    
        printf("swap の前: a = %d, b = %d\n", a, b);
    
        swap(a, b);
    
        printf("swap の後: a = %d, b = %d\n", a, b);
    }
    

  2. しかし、その結果は実引数にはもどされないため、 swap の後も main の a, b の内容は変化しません。

  3. この関数 swap の引数にポインタを使うようにして、 swap の後に main の a, b の内容も入れ代わるようにしてください。

  4. ソースプログラムのファイル名は kadai41.c とし、 それをメールで tokoiまで送ってください。 Subject: は kadai41 としてください。