프로그래밍 기본지식 12탄

최주영·2023년 1월 6일
0

C언어

목록 보기
14/15

✅ 구조체

  • 구조체란 -> 프로그래머가 여러 개의 자료형들을 묶어서 새로운 자료형을 만들 수 있는 방법

✅ 구조체 정의 문법

struct 구조체이름  

{

    멤버변수1의타입 멤버변수1의이름;

    멤버변수2의타입 멤버변수2의이름;

    ...
};

ex)

struct student {  // struct = 키워드   student = 구조체 이름
        int number;   // 구조체 student의 멤버변수
        char name[10]; // 구조체 student의 멤버변수
        int year; // 구조체 student의 멤버변수
        char major[10]; // 구조체 student의 멤버변수
        char phone_number[20]; // 구조체 student의 멤버변수
};

✅ 구조체 선언 문법

struct 구조체이름 구조체변수이름;

ex)

struct book my_book;

✅ 구조체 정의 + 선언 동시에

struct 구조체이름

{

    멤버변수1의타입 멤버변수1의이름;

    멤버변수2의타입 멤버변수2의이름;

    ...

} 구조체변수이름;

ex)

struct book

{

    char title[30];

    char author[30];

    int price;

} my_book;

✅ typedef

  • typedef 란? -> 이미 존재하는 타입에 새로운 이름(별명)을 붙일 때 사용

  • 문법

typedef struct (구조체이름)  // 구조체 정의와 선언 동시에 할 경우 구조체 이름 생략 가능

{

    멤버변수1의타입 멤버변수1의이름;

    멤버변수2의타입 멤버변수2의이름;

    ...

} 구조체의새로운이름;

ex)

typedef struct {

    char title[30];

    char author[30];

    int price;

} TEXTBOOK;

✅ 멤버 연산자

  • 구조체에서 구조체 멤버로 접근하려고 할 때 사용

  • 문법

구조체변수이름.멤버변수이름

ex)

my_book.author

✅ typedef을 사용하지 않은 예제

ex)

#include <stdio.h>  

 

struct book

{

    char title[30];

    char author[30];

    int price;

};  

 

int main(void)

{

    struct book my_book = {"HTML과 CSS", "홍길동", 28000};

    struct book java_book = {.title = "Java language", .price = 30000};  

 

    printf("첫 번째 책의 제목은 %s이고, 저자는 %s이며, 가격은 %d원입니다.\n",

        my_book.title, my_book.author, my_book.price);

    printf("두 번째 책의 제목은 %s이고, 저자는 %s이며, 가격은 %d원입니다.\n",

        java_book.title, java_book.author, java_book.price);

    return 0;

}

✅ typedef을 사용한 예제

ex)

#include <stdio.h>  

 

typedef struct

{

    char title[30];

    char author[30];

    int price;

}  TEXTBOOK;   // 구조체 새로운 이름

 

int main(void)

{

    TEXTBOOK my_book = {"HTML과 CSS", "홍길동", 28000};

    TEXTBOOK java_book = {.title = "Java language", .price = 30000};  

 

    printf("첫 번째 책의 제목은 %s이고, 저자는 %s이며, 가격은 %d원입니다.\n",

        my_book.title, my_book.author, my_book.price);

    printf("두 번째 책의 제목은 %s이고, 저자는 %s이며, 가격은 %d원입니다.\n",

        java_book.title, java_book.author, java_book.price);

    return 0;

}

✅ 공용체 (union)

  • 공용체란? : 같은 메모리 공간을 여러개의 변수들이 공유할 수 있게 하능 기능
  • 사용하는 이유 : 메모리를 절약하기 위해서 사용

✅ 열거형

  • 열거형이란? : 변수가 가질수 있는 값들을 미리 열거해놓은 자료형
  • 사용하는 이유 : 0이라는 값보다는 기호상수를 사용함으로써 더 의미를 쉽게 알 수 있기 때문

profile
우측 상단 햇님모양 클릭하셔서 무조건 야간모드로 봐주세요!!

0개의 댓글