C

C언어(11)

사회적가치누리 2024. 11. 21. 14:15

구조체

 

구조체란 여러 자료형을 가진 변수들을 하나로 묶어 자료형으로 사용할 수 있도록 정의하는 것을 말합니다.

 

선언하는 방법

struct Gamelnfo {
	char* name;
	int year;
	int price;
	char* company;
};

 

사용법

 

struct Gamelnfo gamelnfo1;
gamelnfo1.name = "나도게임";
gamelnfo1.year = 2017;
gamelnfo1.price = 50;
gamelnfo1.company = "나도회사";

printf("-- 게임 출시 정보 --\n");
printf("  게임명   : %s\n", gamelnfo1.name);
printf("  발매년도 : %d\n", gamelnfo1.year);
printf("  가격     : %d\n", gamelnfo1.price);
printf("  제작사   : %s\n", gamelnfo1.company);

 

구조체를 배열처럼 초기화를 할 수도 있습니다.

 

// 구조체를 배열처럼 초기화
struct Gamelnfo gamelnfo2 = {"너도게임",2017,100,"너도회사"};

printf("-- 또다른 게임 출시 정보 --\n");
printf("  게임명   : %s\n", gamelnfo2.name);
printf("  발매년도 : %d\n", gamelnfo2.year);
printf("  가격     : %d\n", gamelnfo2.price);
printf("  제작사   : %s\n", gamelnfo2.company);

//구조체 배열
struct Gamelnfo gameArray[2] = {
	{"나도게임",2017,50,"나도회사"},
	{"너도게임", 2017, 100, "너도회사"}
};

 

그리고 구조체 포인터

 

사용할때는 (*)로 감싸주거나 -> 를 사용하면 됩니다.

struct Gamelnfo* gamePtr;
gamePtr = &gamelnfo1;
printf("\n\n-- 미션맨의 게임 출시 정보 --\n");
/*printf("  게임명   : %s\n", (*gamePtr).name);
printf("  발매년도 : %d\n", (*gamePtr).year);
printf("  가격     : %d\n", (*gamePtr).price);
printf("  제작사   : %s\n", (*gamePtr).company);*/
printf("  게임명   : %s\n", gamePtr->name);
printf("  발매년도 : %d\n", gamePtr->year);
printf("  가격     : %d\n", gamePtr->price);
printf("  제작사   : %s\n", gamePtr->company);

 

 

구조체 안의 구조체

struct Gamelnfo {
	char* name;
	int year;
	int price;
	char* company;

	struct Gamelnfo* friendGame;
};

gamelnfo1.friendGame = &gamelnfo2;
printf("\n\n-- 연관 업체의 게임 출시 정보 --\n");
printf("  게임명   : %s\n", gamelnfo1.friendGame->name);
printf("  발매년도 : %d\n", gamelnfo1.friendGame->year);
printf("  가격     : %d\n", gamelnfo1.friendGame->price);
printf("  제작사   : %s\n", gamelnfo1.friendGame->company);

 

 

typedef : 자료형에 별명 지정

typedef struct { //Gamelnfo 라는 이름이 없어도 사용가능
	char* name;
	int year;
	int price;
	char* company;

	struct Gamelnfo* friendGame;
} GAME_INFO;




// typedef : 자료형에 별명 지정
int i = 1;
typedef int 정수;
typedef float 실수;
정수 정수변수 = 3; // int i = 3;
실수 실수변수 = 3.23f; // float f = 3.23f;
printf("\n\n정수변수 : %d, 실수변수 %.2f\n\n", 정수변수, 실수변수);

typedef struct Gamelnfo 게임정보;
게임정보 game1;
game1.name = "한글 게임";
game1.year = 2015;

GAME_INFO game2;
game2.name = "한글 게임2";
game2.year = 2014;

 

'C' 카테고리의 다른 글

C언어 (12)  (0) 2024.11.23
C언어(10)  (0) 2024.11.20
C언어(9)  (0) 2024.11.19
C언어(8) 기초8  (0) 2024.11.18
C언어(7) 기초7  (0) 2024.11.16