본문 바로가기
정리/C

[C] 구조체

by 멘멘 2023. 7. 30.

구조체

#include <stdio.h>

int main(void){

	//[게임 출시]
    // 이름 : 나도게임
    // 발매년도 : 2017년
    // 가격 : 50원
    // 제작사 : 나도회사

	char *name = "나도회사";
    int year = 2017;
    int price = 50;
    char * company = "나도회사";
    
    //[또다른게임 출시]
    // 이름 : 너도게임
    // 발매년도 : 2017년
    // 가격 : 100원
    // 제작사 : 너도회사

	char *name = "너도회사";
    int year = 2017;
    int price = 100;
    char * company = "너도회사";
    

	return 0;
 }

 

구조체 활용과 typedef

#include <stdio.h>

struct GameInfo{
	char *name;
    int year;
    int price;
    char * company;
    
    struct GameInfo * friendGame; // 연관 업체 게임
    
};

typedef struct GameInformation{
	char *name;
    int year;
    int price;
    char * company;
    
    struct GameInfo * friendGame; // 연관 업체 게임
    
} GAME_INFO;

int main(void){

	//[게임 출시]
    // 이름 : 나도게임
    // 발매년도 : 2017년
    // 가격 : 50원
    // 제작사 : 나도회사
	
    //구조체 사용
	struct GameInfo gameInfo1;
    gmaeInfo1.name = "나도게임";
    gmaeInfo1.year = 2017;
    gmaeInfo1.price = 50;
    gmaeInfo1.company = "나도회사";
    
    //구조체 출력
    printf("--게임 출시 정보 --\n");
    printf("  게임명  : %s\n",gameInfo1.name);
    printf(" 발매년도 : %d\n",gameInfo1.year);
    printf("   가격   : %d\n",gameInfo1.price);
    printf("   제작사 : %s\n",gameInfo1.company);
    
    //구조체를 배열처럼 초기화
    struct GameInfo gameInfo2 = {"너도게임",2017,100,"너도회사");
    printf("-- 또다른 게임 출시 정보 --\n");
    printf("  게임명  : %s\n",gameInfo2.name);
    printf(" 발매년도 : %d\n",gameInfo2.year);
    printf("   가격   : %d\n",gameInfo2.price);
    printf("   제작사 : %s\n",gameInfo2.company);
    
    //구조체 배열
    struct GameInfo gameArray[2] = {
    	{"나도게임",2017,50,"나도회사"},
    	{"너도게임",2017,100,"너도회사"}    
    };
    
    // 구조체 포인터
    struct GameInfo * gamePtr; // 미션맨
    gamePtr = &gameInfo1;
    printf("-- 또다른 게임 출시 정보 --\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);
    
    // 연관 업체 
    gameInfo1.friendGame = &gameInfo2;
    printf("-- 연관업체 게임 출시 정보 --\n");
    printf("  게임명  : %s\n",friendGame->name); 
    printf(" 발매년도 : %d\n",friendGame->year);
    printf("   가격   : %d\n",friendGame->price);
    printf("   제작사 : %s\n",friendGame->company);
    
    
  	//typedef
    //자료형에 별명 지정
    int i = 1;
    typedef int 정수;
    typedef float 실수;
    정수 정수변수 = 3;
    실수 실수변수 - 3.23f;
    printf("정수변수 : %d, 실수변수 : %.2f\n\n", 정수변수, 실수변수);
    
    type struct GameInfo 게임정보;
    게임정보 game1;
    game1.name = "한글게임";
    game1.year = 2015;
    
    GAME_INFO game2;
    game2.name = "한글게임2";
    game2.year = 2014;
    
    
	return 0;
 }

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

[c] 파일 입출력  (0) 2023.08.27
[c] 구조체 관련 문제 풀이  (0) 2023.08.27
[c] 이차원 배열 문제 풀이  (0) 2023.07.23
[c] 포인터 문제 풀이  (0) 2023.07.09
[c] 연결 리스트  (0) 2023.05.28

댓글