20131116【C言語】構造体の内容を入れ替える

お題

構造体の内容を入れ替える

 

プログラム概要

二つの構造体のメンバに値をセットし、

ポインタを関数に渡して、関数内で内容を入れ替える。

最後に各構造体のメンバの値を表示させる

 

ソース

#include <stdio.h>

 

struct s_type {

int i;

char ch;

double d;

} var1, var2;

 

void struct_swap(struct s_type *i, struct s_type *j);

 

int main(void)

{

/* Set value to var1 and var2 */

var1.i = 1;

var1.ch = 'a';

var1.d = 1.1;

var2.i = 2;

var2.ch = 'b';

var2.d = 2.2;

 

/* Swap value */

struct_swap(&var1, &var2);

 

printf("var1\n");

printf("i: %d\n", var1.i);

printf("ch: %c\n", var1.ch);

printf("d: %f\n", var1.d);

printf("\n");

    printf("var2\n");

    printf("i: %d\n", var2.i);

    printf("ch: %c\n", var2.ch);

    printf("d: %f\n", var2.d);

 

return 0;

}

 

void struct_swap(struct s_type *i, struct s_type *j)

{

struct s_type temp;

 

temp = *j;

*j = *i;

*i = temp;

 

return;

}

 

実行結果

var1

i: 2

ch: b

d: 2.200000

 

var2

i: 1

ch: a

d: 1.100000