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