구조체 목적
구조체는 관련 정보를 하나의 의미로 묶을 때 사용
구조체 사용 방법
1. struct 키워드로 정의
- struct 키워드 사용하여 선언
 
struct [구조체이름]{
    자료형 맴버이름1;
    자료형 맴버이름2;
    ...
};
//예시
struct s_member { //구조체 이름 : member
    char number[10]; //구조체 맴버1
    char name[20]; //구조체 맴버2
    int age; // 구조체 맴버3
};
2. typedef 키워드로 정의
- struct 없이 선언할 수있음
 
struct [구조체이름]{
    자료형 맴버이름1;
    자료형 맴버이름2;
    ...
}구조체 별칭;
//예시
struct s_member { //구조체 이름 : s_member
    char number[10]; //구조체 맴버1
    char name[20]; //구조체 맴버2
    int age; // 구조체 맴버3
}      t_member;
struct s_memeber [변수 이름]이 아닌, t_memeber [변수이름]으로 사용가능
구조체 포인터
선언 방법)
1. struct 키워드로 정의 했을때
struct 키워드와 구조체 이름을 사용하여 구조체 포인터를 선언한다.
malloc을 해줄 때 struct와 구조체 이름을 함께 써줘야 한다는 것을 명심해야한다.
struct member *m1 = malloc(sizeof(struct s_member));
2. typedef 키워드로 정의했을때
별칭이름을 사용하여 구조체 포인터를 선언한다.
t_member *m1 = malloc(sizeof(t_member));
주의할 점은 포인터 변수니까 다른 자료형과 마찬가지로 *(애스터리스크)를 붙여준다.
사용방법)
구조체 포인터의 맴버에 접근할 때에는 화살표 연산자: (→)를 사용해야한다
//struct 키워드 , typedef 키워드 모두 사용방법은 동일
struct s_member {
    char number[10]; 
    char name[20]; 
    int age; 
}      t_member;
int main(void)
{
    t_member m1 =  malloc(sizeof(t_member));
    strcpy(m1 -> number, "20201234");
    strcpy(m1 -> name, "홍길동");
    m1 -> age = 20;
    free(m1);
    return (0);
}
참고)
구조체 맴버에 접근할때는 . (온점)을 이용하여 접근했다.
하지만, 구조체 포인터의 맴버에 접근할때는 화살표연산자를 사용한다.
구조체 포인터에서 맴버에 접근할때 온점을 사용하고 싶다면 괄호와 역참조를 사용해줘야된다.
m1 -> age; //화살표 연산자로 맴버에 접근
(*m1).age; //구조체 포인터를 역참조한 뒤, 온점(.)으로 맴버에 접근
참고링크)
구조체 정리
1. 구조체 목적 구조체는 관련 정보를 하나의 의미로 묶을 때 사용한다. 2. 구조체 사용 방법 (기본) (1) 구조체 정의 및 변수 선언 구조체는 아래처럼 struct 키워드로 정의한다. struct [구조체이름] {
mong9data.tistory.com
'C' 카테고리의 다른 글
| C - 컴파일 과정(전처리, 컴파일, 어셈블, 링크) (0) | 2020.10.18 | 
|---|