3.3 値を交換する関数 swap


<例題> 以下のプログラムを読もう。実行しよう。
#include <stdio.h>

int main (void) {
    int a, b, tmp;
 
    printf("a = ");
    scanf("%d", &a);
    printf("b = ");
    scanf("%d", &b);

    printf ("BEFORE : a = %3d, b = %3d \n", a, b);

    tmp = a;
    a = b;
    b = tmp;

    printf (" AFTER : a = %3d, b = %3d \n", a, b);

    return (0);
}

<問題>



#include <stdio.h>

void swap (int *x, int *y); /* 引数xはアドレス。intを格納する */

int main (void) {
    int a, b, tmp;

    printf("a = ");
    scanf("%d", &a); 
    printf("b = ");
    scanf("%d", &b);

    printf ("BEFORE : a = %3d, b = %3d \n", a, b);

    swap(&a, &b); /* swap関数の呼び出し。引数はアドレス渡し xとyのアドレス */

    printf (" AFTER : a = %3d, b = %3d \n", a, b);

    return (0);
}

void swap (int *x, int *y){
   /* よくわかるC p.81 Q7_3 と同じ問題。解答を確認 */
}