본문 바로가기

C언어/정리
C 언어 도전기 8

1. 구조체 기본

#include<stdio.h>

struct GameInfo {
char* name;
int year;
int prince;
char* company;
};

int main(void)
{
// [게임 출시]
// 이름 : 나무 게임 
// 발매년도 : 2022년
// 가격 : 50원
// 제작사 : 나무의 하루

char* name = "나무 게임";
int year = 2022;
int prince = 50;
char* company = "나무의 하루";

// [또다른 게임 출시]
// 이름 : 아침 게임 
// 발매년도 : 2022년
// 가격 : 100원
// 제작사 : 나무의 하루

char* name2 = "나무 게임";
int year2 = 2022;
int prince2 = 100;
char* company2 = "나무의 하루";

struct GameInfo gameInfo1;
gameInfo1.name = "나무게임";
gameInfo1.year = 2022;
gameInfo1.price = 50;
gameInfo1.company = "나무의 하루";

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


return 0;
}

2. 구조체 배열
3. 구조체 포인터

struct GameInfo * gamePtr; 
gamePtr = &gameInfo1;
printf("\n\n-- 신상 게임 출시 정보 --\n");
printf("  게임명    : %s\n", gamePtr->name);  // = printf("  게임명    : %s\n", (*gamePtr).name); //*ptr
printf("  발매년도  : %d\n", gamePtr->year);
printf("  가격      : %d\n", gamePtr->price);
printf("  제작사    : %s\n\n", gamePtr->company);

4. 구조체 안의 구조체

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

struct GameInfo* friendGame; 
};

int main(void)
{
char* name2 = "나무게임";
int year2 = 2022;
int price2 = 100;
char* company2 = "아침 나뭇잎";

struct GameInfo gameInfo1;
gameInfo1.name = "나무게임";
gameInfo1.year = 2022;
gameInfo1.price = 50;
gameInfo1.company = "나무의 하루";

struct GameInfo gameInfo2 = { "아침게임", 2022, 100, "아침 나뭇잎" };
printf("-- 또다른 게임 출시 정보 --\n");
printf("  게임명    : %s\n", gameInfo2.name);
printf("  발매년도  : %d\n", gameInfo2.year);
printf("  가격      : %d\n", gameInfo2.price);
printf("  제작사    : %s\n\n", gameInfo2.company);

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

return 0;
}

5. typedef

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

struct GameInfo* friendGame;
} GAME_INFO;

int main(void)
{
typedef struct GameInfo 게임정보;
게임정보 game1;
game1.name = "한글 게임";
game1.year = 2022;

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

return 0;
}

** 중간 생략!

'C언어 > 정리' 카테고리의 다른 글

C 언어 도전기 9  (0) 2022.07.06
C 언어 도전기 7  (0) 2022.07.04
C 언어 도전기 6  (0) 2022.07.03
C 언어 도전기 5  (0) 2022.07.03
C 언어 도전기 4  (0) 2022.07.02