C언어(2020년)

21. 구조체

리더2333 2020. 11. 3. 23:14
반응형

여러가지 정보를 묶어서 처리하기 위해서 구조체가 필요하다.

struct Human
{
    char name[50];
    int age;
    char gender;
    char tel[50];
};

struct Human human;

위와 같이 정의 하고 선언하여 사용한다.

 

 

 

 

 

구조체의 초기화

 struct Human
 {
     char name[50];
     int age;
     char gender;
     char tel[50];
 };

 struct Human human = { "leader2333", 99, 'M', "010-000-0000" };

 printf("name : %s\n", human.name);
 printf("age : %d\n", human.age);
 printf("gender : %c\n", human.gender);
 printf("tel : %s\n", human.tel);

위와같이 초기화 할 수 있고,

각각 human.name = "leader2333"; human.age = 99; human.gender = 'M'; human.tel = "010-000-0000";

초기화 해 줄 수 있다.

 

printf 문 내에서 %s 는 문자열을 출력하라는 의미이다.

%c 는 아스키코드값을 출력하라는 의미이다.

 

 

 

 

아래와 같이 선언과 동시에 human 이라는 변수를 결합할 수 있지만,

 

이렇게 하면 선언부만 따로 incude 할 수 없기 때문에 좋치 못하다.

선언부를 따로 분리하는 코드가 좋다.

 struct Human
 {
     char name[50];
     int age;
     char gender;
     char tel[50];
 } human;

 

 

 

 

typedef 와 연결

 typedef struct Human
 {
     char name[50];
     int age;
     char gender;
     char tel[50];
 } Human;

위와같이 typedef 와 연결해 놓으면

struct 를 쓰지 않고 변수를 만들수 있기 때문에 좋다.

 

Human human; 이라고 변수를 만들면됨(struct 가 없어도 됨)

 

 

 

 

 

다중 변수 구조체

 typedef struct Human
 {
     char name[50];
     int age;
     char gender;
     char tel[50];
 } Human, *PHuman;

이렇게 다중구조체로 정의할 수 있다.

반응형

'C언어(2020년)' 카테고리의 다른 글

23. define  (0) 2020.11.04
22. const  (0) 2020.11.04
20. bool 자료형  (0) 2020.11.03
19. 연산자  (0) 2020.11.03
18. 연산자 우선순위  (0) 2020.11.03