본문 바로가기

여러가지

기말고사 대비 프기실 2강. Structure

기말고사 대비 프기실 강의는 4강으로 완결, 5강은 어려운 개념으로 만들겁니다.


학교에서 신체검사를 한다고 합니다. 그 학생들의 정보를 저장하는 프로그램을 만들어봅시다.


char name1;

int age1;

float height1;


char name2;

int age2;

float height2;


........


이런 식으로 계속만들다 보면 상당히 귀찮을 겁니다. 따라서 스트럭쳐를 만들어서


저기 있는 3가지 요소 이름,나이,키 를 하나로 만들면 더 쉽게 정리할 수 있습니다.


struct person        <- 스트럭트 이름

{

char name;

int age;

float height;

};                        <-  스트럭트 괄호 닫고 ; 를 써줘야 합니다

                          <- int main 위에 써주는 것이 바람직 합니다.

int main()

{

return 0;

}



스트럭트는 인트 메인 위에 만들어야 합니다. 저번에도 말했지만, 컴퓨터는 위에서부터 차례대로 읽기 때문에


스트럭트 부분을 먼저 읽지 않으면 오류가 나게 됩니다.


위에 적어 놓은 것은 person 이란 이름의 스트럭트를 만든겁니다. person은 이름,나이,키를 포함하고 있죠.


char, int, float가 하나로 묶인 겁니다.


이제 이 스트럭트를 활용하는 방법을 알아봅시다.


우리가 int를 선언할때


int a; 라고 하듯이 person도 똑같이


person a; 라고 합시다. a라는 이름의 person 스트럭쳐를 만든겁니다.


이름을 넣어봅시다.


a.name = 'K';


K라는 이름을 a 의 name에 넣었습니다. 나이나 키도 마찬가지로


a.age = 21;

a.height = 180.1;


이런식으로 할 수 있습니다.



하나만 연습해 봅시다.


물건이름(char), 물건 가격(int)를 가지는 스트럭쳐를 만들어봅시다.


그리고 값을 입력 받고 다시 출력하는 프로그램을 만들어 봅시다.



1강에서 function를 배웠습니다. function과 structure를 함께 쓰려면 어떻게 써야하는지 알아보죠.


먼저 structure을 만드는 함수를 만들어 봅시다.


앞에서 보여줬던 학생 신체검사에서 하나하나 마다


person a;

a.name = 'K'

a.age = 21;

a.height = 180.1;


이렇게 치면 이것도 귀찮습니다.


따라서 함수로 쉽게 만들어 봅시다.


person makestruct (char a, int b, float c)

{

person temp;

temp.name = a;

temp.age = b;

temp.height = c;

return temp;

}


이렇게 함수를 만든 다음


person a = makestruct ('K',21,180.1);


이렇게만 하면 위의 4줄의 코드와 동일한 역할을 합니다.


마지막으로 structure을 function에서 받아 봅시다


structure을 출력하는 함수를 만들어 봅겁니다.


void printstruct (person a)

{

printf ("%c is %d old and %f tall",a.name,a.age,a.height);

}


그리고 쓸 때는


printstruct (a);


라고만 쓰면 됩니다.



마지막 과제는 아까 만들었던 물건 프로그램에 방금 배운 함수


스트럭쳐 쉽게 만들기, 스트럭쳐 출력하기 함수를 추가해 보는 겁니다.


스트럭쳐는 그렇게 어려운 부분이 아니기에 딱히 할말도 더 없습니다만,


헷갈리기 쉬우니 개념을 명확히 해주세요.


특히 스트럭트의 이름은

1.스트럭트를 처음 구성할때 짓는 이름

2. 스트럭트를 만들때 짓는 이름


헷갈리지 않게 조심하세요.


다음 강 부터는 어려울겁니다.



'여러가지' 카테고리의 다른 글

기말고사 대비 프기실 4강. Pointer  (0) 2014.12.16
기말고사 대비 프기실 3강. Array  (0) 2014.12.15
기말고사 대비 프기실 1강. Function  (0) 2014.12.11
iOS 7.1, 7.1.1 탈옥  (0) 2014.06.24
LG G2 사용기 + 리뷰!  (0) 2013.12.17