ポインタ

ポインタを利用して二つの値を交換する

#include<stdio.h>

void swap(int *nx,int *ny){
        int temp = *nx;
        *nx = *ny;
        *ny = temp;
}
int main(void){
        int na,nb;

        puts("二つの整数を入力してください。");
        printf("整数1:"); scanf("%d",&na);
        printf("整数2:"); scanf("%d",&nb);
            
        swap(&na,&nb);
        puts("これらの値を交換しました。");
        printf("整数1は%dです。\n",na);
        printf("整数2は%dです。\n",nb);

        return 0;
}

値を間接的に交換してやるってことか。。

和と差を求める

#include<stdio.h>

void sum_diff(int n1,int n2,int *sum,int *diff){
        *sum = n1 + n2; 
        *diff = ( n1 > n2 ) ? n1 - n2:n2 - n1; 
}

int main(void){
        int na,nb;
        int wa = 0 ,sa = 0;

        puts("二つの整数を入力してください。");
        printf("整数A:"); scanf("%d",&na);
        printf("整数B:"); scanf("%d",&nb);

        sum_diff(na,nb,&wa,&sa);
            
        printf("和は%dです。\n差は%dです。\n",wa,sa);

        return 0;
}

変数のアドレスを格納する変数がポインタってことでいいのかな。。。

関数にポインタを渡して、関数の中で間接演算子*を適用させて、そのポインタの指すオブジェクトを間接的に扱う。

何となくは分かるんだけど。