1. 구조체란?


 구조체란 연관성이 있는 서로 다른 자료형을 하나의 집합으로 묶어 새롭게 정의한 사용자 정의 료형이다. 


2. 구조체는 언제, 왜 필요할까?

  구조체는 성적 자료와 같이 학번, 이름, 점수 등 과 같이 다른 자료형을 하나의 집합으로 만드는 상황에서 매우 유용하다. 구조체를 사용하지 않는다면 다음과 같이 선언 하게 된다 


int hakbun;

char  name[10];

int   kor, eng, mat, total;

float  avg;


위와 같이 선언 할텐데 막약에 학생이 1명이 아니라 여러명일 경우 어떻게 선언해야 할까? 


int hakbun1;

char  name1[10];

int   kor1, eng1;


int hakbun2;

char  name2[10];

int   kor2, eng2;


물론 위와 같이 선언할 수도 있다 하지만 너무 비효율적이지 않은가 하지만 구조체를 사용하면 굉장히 실플하고 간단하게 선언해줄 수있다.


3. 구조체의 사용방법


-구조체의 형식은 다음과같다.


struct  구조체이름{     

    자료형  멤버명_1;

    자료형  멤버명_2;

     

    자료형  멤버명_n;

}; //구조체선언에서는 마지막에 꼭 세미콜론(;)을 써야한다.



-위를 참고해서 성적자료를 선언하면 다음과 같다.


struct   sungjuk{

       int hakbun;

      char  name[10];

       int   kor, eng;

};





-그렇다면 구조체를 선언했으니 구조체 변수선언 방법을 알아보자.


형식

struct   구조체이름  변수명_1, 변수명_2, …;

     또는

struct  구조체이름{     

    자료형  멤버명_n;

}변수명_1, 변수명_2; 


성적자료 선언

struct   sungjuk  student1, student2, …;

    또는

struct  sungjuk{     

    자료형  멤버명_n;

}student1, student2; 



-이제 구조체변수 선언도 했으니 구조체를 초기화 해보자

구조체변수의 멤버 값을 참조할때는 ' . ' 점을 사용한다.


student1.hakbun = 1;

student1.name= "홍길동";

student1.kor = 92;

student1.eng = 96;


student2.hakbun = 2;

student2.name= "심청이";

student2.kor = 75;

student2.eng = 100;


또는

struct  sungjuk  student1={1, "홍길동", 92, 96};

struct  sungjuk  student2={2, "심청이", 75, 100};

또는

struct  sungjuk  student[2]={{1, "홍길동", 92, 96},

  {2, "심청이", 75, 100}};


-위 예제를 간단하게 합치면 다음과 같다.

struct   sungjuk{

       int hakbun;

      char  name[10];

       int   koreng;

}student1={1, "홍길동", 92, 96}, student2={2, "심청이", 75, 100};






WRITTEN BY
Who1sth1s

,