은근한

C언어 9. 구조체(struct) 본문

카테고리 없음

C언어 9. 구조체(struct)

EsJoo 2013. 11. 4. 00:42

구조체


배열과 비교하자면 배열은 연속된 같은 데이터형의 변수들을 하나로 묶어서 사용하는 기능이고


구조체는 서로 다른 데이터형의 변수들을 하나로 묶어서 사용하는 기능


구조체의 정의

형식

struct 태그명 {            // 태그명이 구조체를 구별하는 역할을 한다


데이터형 멤버명;                    

데이터형 멤버명;            // 구조체의 멤버로 일반 변수 뿐만 아니라 배열이나 포인터로 선언하는것도 가능

데이터형 멤버명;

...

...                        

.

};


//구조체를 정의할 때 주의할 점은 구조체를 정의하는 것은 새로운 데이터형을 만든다는 것이다.

//그래서 구조체 변수가 선언될때 메모리에 할당된다.


ex)

1
2
3
4
5
6
struct student {
    
    char name[20];
    int eng,kor,math;
    float avg;
    };



구조체 변수의 선언


형식


struct 태그명 변수명1,변수명2,....;


ex)


1
struct student s1,s2;


//구조체 안에 들어 있는 멤버에 접글할 때는 멤버접근연산자인 . (마침표)을 사용한다

형식

구조체 변수명.구조체 멤버명

ex)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include<stdio.h>
 
struct student {
    
    char name[20];
    int eng,kor,math;
    float avg;
    };
    
void main()
{
    struct student s1,s2;
    
    s1.name = Taylor;
    s1.kor = 90;
    s1.eng = 95;
    ...
    ...    
    }


구조체 변수를 사용할 때 한가지 주의할 점은 궂체 변수간에는 비교 연산을 할수 없다.
만일 두 구조체 변수의 값이 같은지 비교하려면 구조체 멤버대 멤버로 비교해야한다.

ex)

s1.name == s2.name;