구조체


하나 이상의 변수를 그룹화 하여 새로운 자료형을 정의 하는 것을 구조체라 한다.

구조체 안에 변수는 int, char, 배열, 포인터, 또다른 구조체등 어떤 것이든 상관없다.



구조체 정의/선언 방법


사람이라는 구조체를 정의 해보자.

구조체 안에 담아야 할 변수는 이름과, 나이 두가지만 정의 해보도록 하겠다.

struct human

{

    char name[50];  // 이름

    int  age;       // 나이

};


구조체가 위와 같이 정의 되었으니 선언해서 사용할 준비를 해보자.


...

int main(void)

{

    struct human jack, mike;

    ...

    return 0;

}


위와같이 human 구조체를 jack, mike 라는 변수 선언을 하므로써 구조체 사용 준비가 완료 되었다.

아래는 구조체 정의와 동시에 선언 방법을 알아보겠다.


struct human

{

    char name[50];  // 이름

    int  age;       // 나이

} jack, mike;



구조체 변수 사용 방법


구조체 선언 변수 jack에 있는 name과 age 값은 어떻게 접근 가능 할까?

jack.age = 10;


jack 뒤에 . 을 붙인뒤 구조체 안에 정의 되어 있는 변수 age를 접근 했다.

. 를 '멤버 연산자' 혹은 '맴버 접근 연산자'라고 부른다.




구조체 정의 및 선언, 사용방법 내용이 담긴 소스를 보면서 마무리 하겠다.

#include <stdio.h>

#include <string.h>


struct human

{

    char name[50];  // 이름

    int  age;       // 나이

};


int main()

{

struct human jack, mike;


jack.age = 10;

mike.age = 11;


memset( &jack.name, 0x00, sizeof(jack.name) ); // 이름 변수 초기화

memset( &mike.name, 0x00, sizeof(mike.name) ); // 이름 변수 초기화


strcpy( jack.name, "jack" );

strcpy( mike.name, "mike" );


printf(" %s is %d year old \n", jack.name, jack.age );

printf(" %s is %d year old \n", mike.name, mike.age );

}


반응형

+ Recent posts