구조체
구조체란 여러 자료형을 가진 변수들을 하나로 묶어 자료형으로 사용할 수 있도록 정의하는 것을 말합니다.
선언하는 방법
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 |