アットウィキロゴ

構造体

構造体の基本

#include <stdio.h>

struct HITO{
        char *name;
        int age;
};
 
main() {
	struct HITO x,y;
        x.name = "大島裕子";
        x.age = 17;
        y.name = "蒼井優子";
        y.age = 25;
 
        printf("名前\t\t年齢\n");
        printf("%s\t%d\n" , x.name , x.age);
        printf("%s\t%d\n" , y.name , y.age);
 
}

構造体の配列

#include <stdio.h>

struct HITO{
        char *name;
        int age;
};
 
main() {
	int i;
	struct HITO x[2];
        x[0].name = "大島裕子";
        x[0].age = 17;
        x[1].name = "蒼井優子";
        x[1].age = 25;
 
        printf("名前\t\t年齢\n");
	for(i=0;i<=1;i++){
        	printf("%s\t%d\n" , x[i].name , x[i].age);
	}
 
}

構造体の代入

#include <stdio.h>

struct HITO{
        char *name;
        int age;
};
 
main() {
	int i;
	struct HITO x,y;
        x.name = "大島裕子";
        x.age = 17;
        printf("名前\t\t年齢\n");
 
	y = x;//構造体の代入
 
	printf("%s\t%d\t%p\n" , x.name , x.age, x.name);
	printf("%s\t%d\t%p\n" , y.name , y.age, y.name);
 
	y.name = "蒼井優子";
	y.age = 25;
 
	printf("%s\t%d\t%p\n" , x.name , x.age, x.name);
	printf("%s\t%d\t%p\n" , y.name , y.age, yesktop}

構造体のポインタ

#include <stdio.h>

struct HITO{
        char *name;
        int age;
};
 
main() {
	int i;
	struct HITO x;
	struct HITO *y;
        x.name = "大島裕子";
        x.age = 17;
        printf("名前\t\t年齢\n");
 
	y = &x;
 
	printf("%s\t%d\n" , y->name , y->age);
	y->name = "蒼井優子";
	y->age = 25;
	printf("%s\t%d\n" , x.name , x.age);
	printf("%s\t%d\n" , y->name , y->age);
}

構造体配列とポインタ

#include <stdio.h>

struct HITO{
        char *name;
        int age;
};
 
main() {
	int i;
	struct HITO x[2];
	struct HITO *y;
 
        x[0].name = "大島裕子";
        x[0].age = 17;
        x[1].name = "蒼井優子";
        x[1].age = 25;
 
	y = x;
 
	printf("名前\t\t年齢\n");
	printf("%s\t%d\n" , y->name , y->age);
	printf("%p\n", y );
 
	y = y + 1;
	printf("%s\t%d\n" , y->name , y->age);
	printf("%p\n", y );
 
}

演習

  • 構造体のポインタ変数を用いて、3人の年齢をすべて20にする。
#include <stdio.h>

struct HITO{
        char *name;
        int age;
};
 
main() {
	int i;
	struct HITO x[3];
	struct HITO *y;
 
        x[0].name = "大島裕子";
        x[0].age = 17;
        x[1].name = "蒼井優子";
        x[1].age = 25;
        x[2].name = "長澤まさみ";
        x[2].age = 27;
最終更新:2012年05月30日 11:21